【发布时间】:2016-12-02 13:15:47
【问题描述】:
我有两个列表:
list1 = ['USD', 'GBP', 'CHF', 'HRK', 'HUF', 'RSD', 'BAM', 'MKD', 'RUB', 'CZK', 'PLN', 'BGN', 'NOK', 'SEK', 'DKK', 'AUD', 'CAD', 'JPY']
list2 = [('1,0748', '1,0508'), ('0,8639', '0,8399'), ('1,0942', '1,0602'), ('7,6508', '7,4208'), ('5,8900', '7,0900'), ('4,9400', '1,1400'), ('1,9850', '1,9190'), ('2,1100', '0,2900'), ('1,9393', '6,5393'), ('7,5440', '6,5440'), ('4,5090', '4,3610'), ('1,9790', '1,9250'), ('9,2471', '8,9071'), ('9,9290', '9,6090'), ('7,5521', '7,3281'), ('1,4444', '1,4004'), ('1,4528', '1,4048'), ('1,8300', '8,0300')]
我将如何制作一个字典,其中两个项目元组将是这些元组的值和 list1 键中的项目。
类似这样的:{'USD': (1.0748, 1.0508), 'GBP': (0.8639, 0.8399), etc.}.
list one 中的第一项与 list2 中的第一个元组一起使用,第二项与第二个一起使用,依此类推。
此外,如您所见,“数字”是 list2 中的字符串,但在字典中变为浮点数。如何以最简单的方式做到这一点?
感谢您的帮助。
【问题讨论】:
-
粗略的做法:
d = {i:(float(j[0].replace(',', '.')),float(j[1].replace(',', '.'))) for i,j in zip(list1, list2)} -
@Farhan.K:如果这是为了解决 OP 的问题而我们没有结束这个问题,为什么它是评论而不是答案?
标签: python python-3.x dictionary tuples