2017-11-30 11 views
-1

タプルのリストとして文字列と辞書を組み合わせる方法は?Pythonタプルと辞書

は私が2枚のdictsは私が事前に

[('Canada', {'gdp': '10', 'area': '100'}), 
('Norway', {'gdp': '20', 'area': '200'})] 

おかげのようなタプルのリストを取得したい

dict1 = {'gdp': '10', 'area': '100'} 
dict2 = {'gdp': '20', 'area': '200'} 

を言っていた文字列

s1 = 'Canada' 
s2 = 'Norway' 

があるとします。

+0

あなたが試したことと結果は何ですか? – glibdud

+0

これはタプルのリストです。そして、あなたは '(s1、dict1)、(s2、dict2)]' – Blorgbeard

答えて

2

あなたはこれを試すことができます。

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'})] 
+0

'[(a、b)for zip(...)]' ==> 'list(zip (...)) ' –

+0

@Sakshiこの答えがあなたを助けたら、それを受け入れてください。ありがとうございました! – Ajax1234

+1

ジップとタプルのアンパックを使用すると、ちょうど '4'変数の場合に複雑なものが*少し*であるとは思わないでしょうか... –

1

あなたは複数の変数を定義して、試してみて、それがないと、すでに定義された変数からなるlistにこれらを組み合わせるべきではありませんスケーラブル。これは、あなたが言う場合は、sxsだからs1s2s3それはばかげているだろうからです!これらの値はどこかから来ている必要がありますので、中間変数を定義するのではなく、そのソースから直接辞書のリストを作成するだけです。

しかし、あなたはあなただけのシンプルなlist宣言して欲しいものを達成することができます

final_dict = [(s1, dict1), (s2, dict2)] 

できます:あなたがいずれかを書い避けたい場合

[('Canada', {'gdp': '10', 'area': '100'}), ('Norway', {'gdp': '20', 'area': '200'})] 
0

あなたはまたmapを使用してそれを行うことができますforコードのループ:

res = list(map(lambda i,j: (i,j), [s1,s2], [dict1, dict2])) 
print(res) 

出力:

[('Canada', {'area': '100', 'gdp': '10'}), ('Norway', {'area': '200', 'gdp': '20'})] 
関連する問題