2017-08-07 11 views
2

存在するキー値リストから辞書の辞書を作成するには?キーから辞書のリストを作成する方法、Pythonの値

celebr = ['Tony','Harry','Katty','Sam'] 
perc = [69,31,0,0] 


d = dict(zip(celebr, perc)) 


dlist = [] 

for i in d.items(): 
    dlist.append(i) 

print(dlist) 

出力:私はd.itemsを使用する場合

[('Tony': 69), ('Harry': 31), ('Katty': 0), ('Sam': 0)] 

それは自動的に私のタプルではなく、辞書を提供します。タプルではない辞書のリストを作成するエレガントな方法はありますか?

構造次取得する必要があります:

[{'Tony': 69}, {'Harry': 31}, {'Katty': 0}, {'Sam': 0}] 
+0

あなたが望む構造set's 'の' list'があります。 「辞書」ではない。 '' {Tony ':69}、{' Harry ':31}、{' Katty ':0}、{' Sam ':0}] 'を意味しますか?そしてもしそうなら、なぜですか? '{'Tony':69、 'Harry':31、 'Katty':0、 'Sam':0}'のような単一の辞書にすべてのエントリを入れる方が良いのではないでしょうか? –

+0

ここを見てください:https://stackoverflow.com/questions/3783530/python-tuple-to-dict – zypro

+0

申し訳ありません、はい、私は辞書のリストが欲しい、それは間違いでした。 –

答えて

3

これは

celebr = ['Tony','Harry','Katty','Sam'] 
perc = [69,31,0,0] 

dlist = [] 

for i, j in zip(celebr, perc): 
    dlist.append({i: j}) 

print dlist 
+0

@Ivanこの回答は役に立ちますか?あなたはまだ問題に直面していますか? –

0

あなたの例で十分だろう単にdicts itemsを含むリストを作成します。あなたの質問は、セットのリストを尋ねます。 list comprehensionため

>>> [{k, v} for (k, v) in d.items()] 
[{'Tony', 69}, {'Harry', 31}, {'Katty', 0}, {'Sam', 0}] 
>>> [{k: v} for (k, v) in d.items()] 
[{'Tony': 69}, {'Harry': 31}, {'Katty': 0}, {'Sam': 0}] 
9

良いユースケース:

dlist = [{k: v} for k, v in zip(celebr, perc)] 

出力:

>>> celebr = ['Tony', 'Harry', 'Katty', 'Sam'] 
>>> perc = [69, 31, 0, 0] 
>>> 
>>> [{k: v} for k, v in zip(celebr, perc)] 
[{'Tony': 69}, {'Harry': 31}, {'Katty': 0}, {'Sam': 0}] 
+0

ありがとう、それは正常に動作します –

0

てみてください、あなたは本当に、個々のdictsには、キーと値を区切るためにコロンを使用したい場合:

celebr = ['Tony','Harry','Katty','Sam'] 
perc = [69,31,0,0] 

b = [{celebr[i]: perc [i]} for i in range(0, len(celebr))] 

print(b) 

出力:あなたはzipdictで実装することができます

[{'Tony': 69}, {'Harry': 31}, {'Katty': 0}, {'Sam': 0}] 
1

dict(zip(celebr,perc)) 

結果:

In [14]: celebr = ['Tony', 'Harry', 'Katty', 'Sam'] 
In [15]: perc = [69, 31, 0, 0] 

In [16]: dict(zip(celebr,perc)) 
Out[16]: {'Harry': 31, 'Katty': 0, 'Sam': 0, 'Tony': 69} 
関連する問題