Python 在列表中查找第一个值并返回第二个值
我有一个如下列表:Python 在列表中查找第一个值并返回第二个值,python,list,indexing,Python,List,Indexing,我有一个如下列表: list = [ ("Element A", 01), ("Element B", 02), ("Element C", 03), ("Element D", 04) ] 要知道第一个值,我需要一种获取第二个值的方法。如果只想搜索一次,只需扫描列表: lst = [ ("Element A", 1), ("Element B", 2), ("Element C", 3), ("Element D", 4) ] key = "Element B" val = [elt[1]
list = [
("Element A", 01),
("Element B", 02),
("Element C", 03),
("Element D", 04)
]
要知道第一个值,我需要一种获取第二个值的方法。如果只想搜索一次,只需扫描列表:
lst = [
("Element A", 1),
("Element B", 2),
("Element C", 3),
("Element D", 4)
]
key = "Element B"
val = [elt[1] for elt in lst if elt[0] == key][0]
print(val)
按预期给出2
如果要进行多次搜索,请将列表转换为dict:
d = dict(lst)
val = d[key]
当您确实需要列表时,还可以使用列表提供
2
通过这种方式,您可以这样定义您的信息:
mydict = {
"Element A": 01,
"Element B": 02,
"Element C": 03,
"Element D": 04
}
检索值非常简单,如下所示:
mydict['Element A']
[编辑]谢尔盖的答案更简洁。使用字典<代码>dict(我的列表)['Element A']好的,有什么问题吗?你试过什么,做过什么研究吗?另外,命名变量
列表是一个糟糕的主意。转换成dict看起来更干净,效果也更好。谢谢