检索与其他元素关联的列表元素

时间:2017-08-03 20:59:02

标签: python list dictionary element

这是我的清单:

List1 = [['movies', 0.0], ['minion 2015', 1.0], ['minion 2016', 0.3333333333333333]]

我想恢复与值" 1.0"相关联的元素。谁是" minion 2015"。有可能这样做吗?

一些细节:

我的例子是由于我从脚本中返回了一个值。 这个结果首先显示了一个列表,如list' list1'。 然后,使用条件处理此列表将返回结果项[1.0]。 我想知道我们是否可以在输出中检索与此元素(1.0)关联的元素"minion 2015"

3 个答案:

答案 0 :(得分:0)

如果您的意思是想检索,那么这是一个选项。

get_key

定义函数yield from以生成与此键关联的所有值。

如果您使用的是python3.3或更高版本,则可以使用In [1198]: def get_key(l, key): ...: yield from (v for k, v in l if k == key) ...: In [1199]: list(get_key(List1, 'minion 2015')) Out[1199]: [1.0] 语法来缩短功能:

d1 = {'pig':10, 'cow':40, 'sheep':50}
d2 = {'pig':40, 'cow':20, 'sheep':10, 'tiger':30}

d1_total = 100    #sum of the dictionary values
d2_total = 100    #my actual dictionaries have different sums

答案 1 :(得分:0)

是的,可以做到。

我建议你阅读reference

答案 2 :(得分:0)

您可以使用下面的filter

filtered_list = list(filter(lambda i: i[1] == 1.0, my_list))

<强>输出:

>>> my_list = [['movies', 0.0], ['minion 2015', 1.0], ['minion 2016', 0.3333333333333333]]
>>> filtered_list = list(filter(lambda i: i[1] == 1.0, my_list))
>>> filtered_list
[['minion 2015', 1.0]]
>>> filtered_list[0][0]
'minion 2015'