我知道这很“简单”,但我无法弄明白或找不到这方面的帮助,这让我抓狂。我想制作一个具有多个值的多维列表,例如每行 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
