我有一个订购信息(钥匙已订购):
od1 = {0:10, 1:3, 2:7, 3:11, 4:30, 5:15, 6:19, 7:4, 8:3}
我想要一个包含键:值对每一个od1
的第二个元素。也就是说,我想要:
od2 = {0:10, 2:7, 4:30, 6:19, 8:3}
我试过:
od2 = OrderedDict()
od2 = {k:v for k, v in od1.items() if k % 2 == 0}
然而,这并不能给我一个有序的字典,也不能给我所有的键。相反,我得到的不是我想要的:
{0: 10, 8: 3, 2: 7, 4: 30, 6: 19}
如何获得一个新的orderedict()对象,该对象包含每个第k个键及其关联值?你知道吗
您可以使用
enumerate
:输出:
因为您是从ordered dict开始的,所以只需使用以下代码段(Python2.7):
对于Python3.6,它有一点不同:
在
od.items
上使用itertools.islice
:然后简单地说:
或者,例如,每三个键:
islice
的工作原理类似于列表切片,例如my_list[::2]
或my_list[::3]
,但是,它适用于任何iterable,不支持负步长值,并且必须使用显式的None
值,但原理是相同的。你知道吗相关问题 更多 >
编程相关推荐