我有一个包含许多元素的dict,我想编写一个函数来返回给定索引范围内的元素(将dict视为数组):
get_range(dict, begin, end):
return {a new dict for all the indexes between begin and end}
怎么能做到?
编辑:我不是在要求使用密钥过滤器。。。例如)
{"a":"b", "c":"d", "e":"f"}
get_range(dict, 0, 1) returns {"a":"b", "c":"d"} (the first 2 elements)
我不在乎分类。。。 实际上,我正在实现服务器端分页。。。
直接实施:
一行:
放心,您真正想要的是
OrderedDict
,您还可以使用enumerate
:输出:
注:我允许您使用
0, 1
作为范围值,但是您应该使用0, 2
来对“前两个元素”进行签名(并使用begin <= i < end
作为比较函数编辑:字典未排序。无论何时修改字典,都不可能使} 。
get_range
返回相同的片段。如果您需要确定的结果,请替换您的dict
with a ^{无论如何,你可以得到一片using ^{} :
按键筛选的上一个答案保持在下面:
使用@Douglas算法,我们可以通过使用生成器表达式来简化它:
顺便说一下,不要使用
dict
作为变量名,正如您在这里看到的dict
是字典的构造函数。如果您使用的是Python3.x,那么可以直接使用字典理解。
相关问题 更多 >
编程相关推荐