2016-08-23 23 views
1

リストの元のインデックスをキーとしてリストのn番目の要素ごとに辞書を作成しようとしています。だから、例えば:今すぐList to dictionary pythonのn番目のアイテム

dict(enumerate(l)).items() 

を実行している

l = [1,2,3,4,5,6,7,8,9] 

は私に与える:

dict_items([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]) 

を私が欲しいものです。しかし、私は今これを行うには、Lからのすべての第2の値を選択するときに問題が開始されますので、私は私に

dict_items([(0, 1), (1, 3), (2, 5), (3, 7), (4, 9)]) 

を与えますが、私は、私は維持したい、というたくない

dict(enumerate(l[::2])).items() 

を試してみてください辞書を作るときの元の索引。これを行う最善の方法は何ですか?

私はenumerate()オブジェクトに対して次のような出力

dict_items([(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]) 

答えて

4

使用itertools.islice()たい:

from itertools import islice 

dict(islice(enumerate(l), None, None, 2)).items() 

islice()はあなたにどんなイテレータ上のスライスを与えます。

>>> from itertools import islice 
>>> l = [1,2,3,4,5,6,7,8,9] 
>>> dict(islice(enumerate(l), None, None, 2)).items() 
dict_items([(0, 1), (8, 9), (2, 3), (4, 5), (6, 7)]) 

(期待通りに出力されることに注意が、順序は、いつものように、determined by the hash tableある):上記のすべての第二の要素をとります。

+0

これはそれです。ありがとう。今私はこの機能について読んで始めます。 –