Skip to main content
 首页 » 编程设计

python之在 Python 中查找多维列表中的项目的最佳方法

2025年05月04日24zhujiabin

我知道这很“简单”,但我无法弄明白或找不到这方面的帮助,这让我抓狂。我想制作一个具有多个值的多维列表,例如每行 3 个值,并且我希望能够根据给定值找出该行的任何信息。

例如,如果我有以下数据:

名称:狗,颜色:棕色,行为:快乐 名称:猫,颜色:黑色,行为:悲伤 名称:鸟,颜色:绿色,行为:精力充沛

所以我列了一个 list :

theList = [] 
 
theList = [{"dog","brown","happy" }, {"cat","black", "sad"}, {"bird","green", "energetic"} ] 

如何根据某个值找出某物的信息?例如,我想找出狗的颜色?我将如何在列表中搜索“dog”并找出第二个值的值(列表部分中包含“dog”的值 [1]?

或者为此做一个多维字典更容易?

请您参考如下方法:

这实际上取决于您的意图。正如@ViníciusAguiar 所指出的,您可以将动物用作字典中的键,但这仅在 name 是您的主要查找并且您没有多个 dog 时才有意义具有不同的颜色和行为。

或者,如果这真的是一个你想问多个问题的表,那么一个字典列表可能是合适的结构,例如:

In []: 
data = [{"name":"dog", "colour":"brown", "behaviour":"happy"}, 
        {"name":"cat", "colour":"black", "behaviour":"sad"}, 
        {"name":"bird", "colour":"green", "behaviour":"energetic"} ] 
 
[d['colour'] for d in data if d['name'] == 'dog'] 
 
Out[]: 
['brown'] 

这是等效的 for 循环:

In []: 
result = [] 
for d in data: 
    if d['name'] == 'dog': 
         result.append(d['colour']) 
result 
 
Out[]: 
['brown'] 

但你也可以问其他问题,比如哪些动物是绿色:

In []: 
[d['name'] for d in data if d['colour'] == 'green'] 
 
Out[]: 
['bird'] 

如果你也可以使用第三方库那么还有pandas,它擅长处理表格数据,例如:

In []: 
import pandas as pd 
df = pd.DataFrame(data) 
df 
 
Out[]: 
   name colour  behaviour 
0   dog  brown      happy 
1   cat  black        sad 
2  bird  green  energetic 
 
In []: 
df[df['name']=='dog']['colour'] 
 
Out[]: 
0    brown