2017-07-10 8 views
0

辞書にあるすべての使用可能なキーを印刷したいと思います。辞書のすべてのキーをPythonで1つ以上の値で印刷するには

d = {'a': 1, 'c': 1, 'o': 1, 'r': 2, 't': 1} 

print(d.keys()) 

>>> dict_keys(['a', 'c', 'o', 'r', 't']) 

しかし、あなたが本当にacorrt印刷したい場合は2 R だけでなくa, c, o, r, t

+1

混乱を避けるために、 'd'に_2個の' r'があります。 '' r''は値 '2'に関連付けられます。テキストやその他のオブジェクトを含む他の値と関連付けることができます。 –

答えて

1

があるので、私はすべてのキーa, c, o, r, r, t、 をプリントアウトしたい:

for key, value in d.items() : 
    for x in range (0, value): 
     print(key) 

ない理由を確認してくださいあなたはそれをしたいと思うでしょう。上記のコメント作成者が指摘するように、キーは一意であり、変更するだけの値です。

1

itertoolsを用いて変異体:値として

from itertools import repeat, chain 

d = {'a': 1, 'c': 1, 'o': 1, 'r': 2, 't': 1} 
lst = list(chain.from_iterable(repeat(letter, times) 
      for letter, times in d.items())) 
print(lst) # ['r', 'r', 't', 'a', 'c', 'o'] 

すべてのキー(letter)辞書にはrepeat EDで何度でも(times)を示唆しています。結果はchainとなり、リストコンストラクターで使用されます。 (代わりにtimes * [letter]付き)

またはrepeatなし:

from itertools import chain 

lst = list(chain.from_iterable(times * [letter] for letter, times in d.items())) 
+0

あなたの答えをありがとう。そしてその説明。非常に威圧的ですが、あなたの説明は、コーディングの意味を理解するのに役立ちます。 – user8283740

+1

脅迫はあなたのコードをもっと詰めるでしょう! ['chain.from_iterable(listOfLists)'](https://docs.python.org/3/library/itertools.html#itertools-recipes)は、ネストされたリストを平坦化するための標準的な方法です。 'itertools'はちょっと知りたい非常に貴重なツールセットです。がんばろう! –

0

は、誰かが答えを掲示し、私はそれをtweekすることができました、ありがとうございます。それはゲームのためのものであり、利用可能なすべての手紙を出しなければならない。

for k,v in d.items(): 
    print(k, end = " ") 
    if v > 1: 
     print(k, end=" ") 

ありがとうございました!あなたの知識を共有してください。

関連する問題