Python 将元组列表中的项与键列表匹配

Python 将元组列表中的项与键列表匹配,python,list,numpy,parsing,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.

我有一长串离子和波长的元组:

[('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, ...}
请尝试使用:

请尝试使用:


我认为最有说服力的方法是词典理解:

>>> 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

我认为最有说服力的方法是词典理解:

>>> 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

你的问题是什么?你的问题有何不同?@Piintesky我相信区别在于dict值应该是一个列表或字符串。问题不清楚所有匹配的键值。毫无疑问,在某些地方有许多适用的复制品。@PaulRooney但是根据问题,离子类型的列表,是由元组列表组成的。你的问题是什么?你的问题有什么不同?@Piintesky我相信区别在于dict值应该是一个列表或字符串。问题不清楚所有匹配的键值。毫无疑问,在这样的地方有许多适用的复制品。@PaulRooney,但根据问题,离子类型的列表是由元组列表组成的。这不是最符合Python的方式,因为它不起作用。它不断地重新定义一个针对该键存储的值。OP清楚地显示了针对单个键存储的多个值,这重新定义了键:值对。然后我误解了这个问题。一个离子可以有多个波长?我不确定OP问题的确切依据是什么;我知道它们可以从HPLC-UV分析中吸收不同的波长,但这可能无关紧要。关键是要脱离OP的预期输出:{'CUI:515.8444333…,'CUII':515.3343233…}这不是最具python风格的方式,因为它不起作用。它不断地重新定义一个针对该键存储的值。OP清楚地显示了针对单个键存储的多个值,这重新定义了键:值对。然后我误解了这个问题。一个离子可以有多个波长?我不确定OP问题的确切依据是什么;我知道它们可以从HPLC-UV分析中吸收不同的波长,但这可能无关紧要。关键是要脱离OP的预期输出:{'CUI:515.8444333…,'CUII':515.334323,…}