Python元组和字典
如何将字符串和dict组合为元组列表 假设我有一根弦Python元组和字典,python,python-3.x,Python,Python 3.x,如何将字符串和dict组合为元组列表 假设我有一根弦 s1 = 'Canada' s2 = 'Norway' 我有两条口述 dict1 = {'gdp': '10', 'area': '100'} dict2 = {'gdp': '20', 'area': '200'} 我想得到一个元组列表,比如 [('Canada', {'gdp': '10', 'area': '100'}), ('Norway', {'gdp': '20', 'area': '200'})] 提前感谢。您可以尝试
s1 = 'Canada'
s2 = 'Norway'
我有两条口述
dict1 = {'gdp': '10', 'area': '100'}
dict2 = {'gdp': '20', 'area': '200'}
我想得到一个元组列表,比如
[('Canada', {'gdp': '10', 'area': '100'}),
('Norway', {'gdp': '20', 'area': '200'})]
提前感谢。您可以尝试以下方法:
s1 = 'Canada'
s2 = 'Norway'
dict1 = {'gdp': '10', 'area': '100'}
dict2 = {'gdp': '20', 'area': '200'}
final_dict = [(a, b) for a, b in zip([s1, s2], [dict1, dict2])]
输出:
[('Canada', {'gdp': '10', 'area': '100'}), ('Norway', {'gdp': '20', 'area': '200'})]
[('Canada', {'area': '100', 'gdp': '10'}), ('Norway', {'area': '200', 'gdp': '20'})]
您不应该定义多个变量,然后尝试将这些变量组合到一个包含已定义变量的
列表中,因为它是不可伸缩的。这是因为如果你说有十个sx
那么s1
,s2
,s3
,那就太可笑了!这些值必须来自某个地方,因此您应该直接从该源创建字典列表,而不是定义中间变量
但是,您只需一个简单的列表
声明即可实现所需:
final_dict = [(s1, dict1), (s2, dict2)]
其中:
[('Canada', {'gdp': '10', 'area': '100'}), ('Norway', {'gdp': '20', 'area': '200'})]
如果希望避免在代码中为
循环编写任何,也可以使用map
执行此操作:
res = list(map(lambda i,j: (i,j), [s1,s2], [dict1, dict2]))
print(res)
输出:
[('Canada', {'gdp': '10', 'area': '100'}), ('Norway', {'gdp': '20', 'area': '200'})]
[('Canada', {'area': '100', 'gdp': '10'}), ('Norway', {'area': '200', 'gdp': '20'})]
你能告诉我你尝试过什么,结果是什么吗?这是一个元组列表。你可以通过做[(s1,dict1),(s2,dict2)]
[(a,b)为a,b在zip(…)]
==>列表(zip(…)
@Sakshi如果这个答案对你有帮助,请接受它。非常感谢。你不认为使用zip和元组解包对于4
变量来说有点过于复杂了吗…@JoeIddonzip
和tuple
在一般情况下更好,当有两个以上的对应国家和它们的字典时,这样以后的操作就更简单了。不过,不鼓励使用大量变量声明。但我同意这是更一般的。。。