我正在尝试遍历字典 [1:] 中的所有内容,但不知道该怎么做,也找不到答案。
for value in self.legLocs.itervalues():
print x
我认为它会像
for value in self.legLocs.itervalues()[1:]:
print x
但这不起作用。这样做的正确方法是什么?
我正在尝试遍历字典 [1:] 中的所有内容,但不知道该怎么做,也找不到答案。
for value in self.legLocs.itervalues():
print x
我认为它会像
for value in self.legLocs.itervalues()[1:]:
print x
但这不起作用。这样做的正确方法是什么?
字典没有顺序,所以除了第一个之外,你不能真正遍历所有字典(因为没有真正定义哪个元素是第一个)。您可以遍历 dict 并排除特定键:
def dict_keys_without(d,excludes_set):
return (k for k in d if k not in excludes_set)
然后您可以使用:
for key in dict_keys_without(d,{'foo','bar'}):
#do something with `k` or `d[k]`, etc.
您可以轻松修改上述函数以使用d.iteritems()
或d.itervalues()
任何您想要的标准。
当然,总是有“使用 a collections.OrderedDict
”的建议,它是一个 dict 子类,它知道它的顺序。如果您使用的是OrderedDict
,那么您可以执行以下操作:
values = iter(od.values())
_ = next(values,None) #scrap the first one
for value in values:
pass #Do something with the next values.
正如@mgilson 所提到的,[1:]
真的没有任何意义dict
......如果你很高兴只是忽略一些任意条目,那么你可以使用类似的东西:
def skipone(d):
i = d()
next(i, None)
return i
d = {1:2, 3:4, 5:6}
for blah in skipone(d.iteritems): # or other function
pass
或者:
from itertools import islice
def skip(obj, n=1):
i = obj() if callable(obj) else obj
return islice(i, n, None)
如果你想遍历所有项目:
for k,v in self.legLocs.items():
print "key",k
print "value",v
或像这样:
for kv in self.legLocs.items():
k, v = kv
print "key",k
print "value",v
如果您只想对键进行迭代:
for k in self.legLocs.keys():
print "key",k
如果您只想迭代值:
for v in self.legLocs.values():
print "value",v
通过字典“迭代”,这样做:
for key in aDict.keys():
if key != 'excluded': # You can check to see if it is the one you want to leave off
print(aDict[key])