字典列表中的第 n 项 python
nth item in List to dictionary python
我正在尝试从列表的每个第 n 个元素创建一个字典,并将列表的原始索引作为键。例如:
l = [1,2,3,4,5,6,7,8,9]
现在运行
dict(enumerate(l)).items()
给我:
dict_items([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)])
这就是我想要的。但是,当我现在想 select 从 l 的每个第二个值来执行此操作时,问题就开始了,所以我尝试
dict(enumerate(l[::2])).items()
这给了我
dict_items([(0, 1), (1, 3), (2, 5), (3, 7), (4, 9)])
但我不想那样,我想在制作字典时保留原始索引。最好的方法是什么?
我想要以下输出
dict_items([(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)])
在 enumerate()
对象上使用 itertools.islice()
:
from itertools import islice
dict(islice(enumerate(l), None, None, 2)).items()
islice()
在任何 iterator 上给你一个切片;以上每两个元素:
>>> 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)。
我正在尝试从列表的每个第 n 个元素创建一个字典,并将列表的原始索引作为键。例如:
l = [1,2,3,4,5,6,7,8,9]
现在运行
dict(enumerate(l)).items()
给我:
dict_items([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)])
这就是我想要的。但是,当我现在想 select 从 l 的每个第二个值来执行此操作时,问题就开始了,所以我尝试
dict(enumerate(l[::2])).items()
这给了我
dict_items([(0, 1), (1, 3), (2, 5), (3, 7), (4, 9)])
但我不想那样,我想在制作字典时保留原始索引。最好的方法是什么?
我想要以下输出
dict_items([(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)])
在 enumerate()
对象上使用 itertools.islice()
:
from itertools import islice
dict(islice(enumerate(l), None, None, 2)).items()
islice()
在任何 iterator 上给你一个切片;以上每两个元素:
>>> 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)。