2017-11-15 7 views
0

は、私が唯一の2つのキーを持つ辞書を持っています。どちらのキーも1000個のユニークな値を持っています。従って 辞書の各値に対応するキーをPythonのリストに保存する方法は? 「F」と「M」:

「F」と「M」に

対応する合計2000個の値は、どの辞書のすべての2000個の値のキーのそれに格納されている、すなわち「F」と「M」を有する長さ2000のリストを作成することができますか?

編集:私は出力が[ 'F'、 'F'、 'F'、........(リスト1000 "F")のようなリスト、 'M'、 'メートルになりたかったですF 'と 'M' '2つのキー含む' をfoo」で.......(リスト1000 "M")]

+0

あなたが希望する出力の小さな例を示していることはできますか? –

+0

'D [ 'F'] + D [ 'M']' –

+0

@AvinashRajこれはキーに関連するすべての値を与えます。私はすべての価値、それぞれの対応するキーをリストに入れたいです。 –

答えて

0

このような機能が必要ですか?

dummy_dict={'f':[1,2,3,4,5,6],'m':[14,13,11,43,11,2,11,1,4,34]} 

print([key for key,value in dummy_dict.items() for _ in range(len(value))]) 

出力:

+0

ありがとう、それは手伝った! –

1

辞書をシミュレート/さんが作成してみましょう'。これらのキーのそれぞれに対して格納される値は、1000要素のリストです。

>>> foo = {'f': ['x']*1000, 'm': ['y']*1000} 
>>> len(foo['f']) 
1000 
>>> len(foo['m']) 
1000 
>>> 

ここで、空のリスト 'bar'を初期化して、目的の出力を保存しましょう。

>>> bar = [] 
>>> 

リストを拡張して、元のリストの他のリストの要素を含めることができます。これを使ってfoo ['f']の要素の数と同じ数の 'f'を含むように 'bar'を拡張しましょう。最初の1000個の要素は、「M 'F' と次千の要素である -

>>> bar.extend(['f']*len(foo['f'])) 
>>> 

繰り返しFOO [ 'M']次に

>>> bar.extend(['m']*len(foo['m'])) 
>>> 

に対して同じ、 'バー' は、2000個の要素のリストであります'インデックス0,999(最初の1000個の要素)と1000,1999(残りの1000個の要素)に対する値の検証は同じです。

>>> len(bar) 
2000 
>>> bar[0] 
'f' 
>>> bar[999] 
'f' 
>>> bar[1000] 
'm' 
>>> bar[1999] 
'm' 
>>> 
+0

ありがとう@PaulRooney。説明を含めるために答えを更新しました。 – Sharad

0
['f', 'f', 'f', 'f', 'f', 'f', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm'] 

以上の官能itertoolsアプローチは

>>> from itertools import chain, repeat 
>>> d = {'f': list(range(1000)), 'm': list(range(1000))} 
>>> list(chain.from_iterable(repeat(k, len(v)) for k, v in d.items())) 

repeatキー値のリストの長さに等しい回数であるかもしれません。それではただchainすべてを1つのiterableに入れてください。

関連する問題