所以说我有一个列表,List1包含列表。
list1 = [ [node1, w1], [node2, w2], [node3, w3]]
如果list1中存在node2,我想得到w2的值。我该如何快速完成?
在stackoverflow中搜索时,我无法找到问题的相关答案。如果有的话,我很乐意参考它。 谢谢!
答案 0 :(得分:1)
这是一种做你要求的方式(使用字符串而不是未定义的变量):
d = {'node1': 'w1',
'node2': 'w2',
'node3': 'w3'}
print d['node2']
# prints w2
如果该数据结构不是强制性的,那么键/值对结构将更简单(并且更快!如果您有许多元素)可以使用:
$from_date : "2017-01-07 09:08:59" To `$to_date : "2017-08-09 09:08:59"`
答案 1 :(得分:1)
简单:
list1 = [ ['node1', 'w1'], ['node2', 'w2'], ['node3', 'w3'] ]
print([ l[1] for l in list1 if l[0] == 'node2' ][0])
答案 2 :(得分:0)
在python中从列表中获取元素相对简单, 您只需要索引到列表中。这可以做到多个级别,即:
example = [[1,2][2,4]]
print(example[1][1])
# will output 2
但是在您的具体情况下,您可以这样做:
list1 = [ ["node1", 1], ["node2", 2], ["node3", 3]]
for item in list1:
if item[0] == "node2":
print(item[1])
# this will print 2
您可以随时将其抽象为函数并返回而不是打印以供进一步使用。
像这样:list1 = [ ["node1", 1], ["node2", 2], ["node3", 3]]
def ContainedInInnerList(ls, item):
for x in ls:
if x[0] == item:
return(x[1])
return None
print(ContainedInInnerList(list1, "node2"))
#output: 2
使用更复杂的列表推导也很好,阅读这些内容:http://www.secnetix.de/olli/Python/list_comprehensions.hawk 我希望这会有所帮助。