将元组列表中的项目与键列表进行匹配

时间:2018-01-30 22:06:28

标签: python list numpy parsing

我有很长的离子和波长元组列表:

[('Cu II', 515.323),('Cu I', 515.809),('Cu VII', 518.336),...]

每个元组中的第一个元素是一个离子数,我创建了一个列表,用于获取整个元组列表中出现的每种类型的离子。

['Cu II','Cu I','Cu XV'...]

如何创建一个新的字典(或numpy数组),使每个波长与附属离子数/类型相匹配?我希望它看起来像这样(使用假值)

{'Cu I: 515.8,444,333..., 'Cu II':515.3,343,233, ...}

2 个答案:

答案 0 :(得分:3)

尝试使用defaultdict

from collections import defaultdict

d = defaultdict(list)
for item in tuples:
    d[item[0]].append(item[1])

答案 1 :(得分:0)

我认为最常用的方法是词典理解:

>>> big_list = [('Cu II', 515.323),('Cu I', 515.809),('Cu VII', 518.336)]
>>> wavelengths = { ion : wavelength for ion, wavelength in big_list}
>>> wavelengths['Cu II']
515.323