首页 > 解决方案 > python - 如何从python编程中的列表列表中提取一个特定物种的值?

问题描述

我有一个 Python 数据中的列表列表。所有值都对应于数据中的每个物种。我想提取特定物种的价值。每个对应的值都在每个列表中。假设我有三种铜、银、金和铂。在三个不同的温度下,它们的频率如下:

Frequency = [[{1}, {2}, {3}, {4}], [{1},{22}, {44}, {54}], [{23}, {43}, {52}]

请记住,每个列表的第三个值是“Au”,即 3、44、43。所以,我需要像这样的答案[3,44,43]

标签: pythonlist

解决方案


我冒昧地使用了defaultdict,所以我们可以按元素名称索引我们的结果。

由于我们从一个集合(例如{1})中提取您的结果,我们可以使用iter它返回一个迭代器,然后调用next以提取第一个值。

from collections import defaultdict
frequencies = [[{1}, {2}, {3}, {4}], [{1}, {22}, {44}, {54}], [{23}, {99}, {43}, {52}]]
res = defaultdict(list)
for i, element in enumerate(['Cu','Ag','Au','Pt']):
  for j in range(len(frequencies)):
    res[element].append(next(iter(frequencies[j][i])))
for element in res:
  print(f'{element} temperatures was {res[element]}')

输出:

Cu temperatures was [1, 1, 23]
Ag temperatures was [2, 22, 99]
Au temperatures was [3, 44, 43]
Pt temperatures was [4, 54, 52]

推荐阅读