[英]How to custom handle iteration in python dictionary?
假设我们有一个字典:
links={"foo":"url1","bar":"url2","baz":"url3",}
我想通过运行一个for循环,如果可能的话:
for link in links:
...
print(next_dictinary_value)
打印下一个dictionaly的值,对于最后一个我想打印第一个。 目的是在每个教义对上打印(连接)到另一对,而不会产生任何对接,从而形成一个循环(相互链接)。
我认为您要的是以下内容:
keys = links.keys()
n = len(keys)
for i in range(n):
thisKey = keys[i]
nextKey = keys[(i + 1) % n]
nextValue = links[nextKey]
print thisKey, nextValue
但是请注意,字典没有排序,因此您可以按任何顺序取回键。
links={"foo":"url1","bar":"url2","baz":"url3",}
it = iter(links)
for link in links:
print it.next()
... baz
... foo
... bar
但是尝试一下:
it = iter(links)
it.next()
for link in links:
try:
print it.next()
except StopIteration:
it = iter(links)
print it.next()
... foo
... bar
... baz
“ ....最好将字典视为无序的键集:...”
您可以使用keys = links.keys()获得所有密钥。 然后使用它们来遍历键。 例:
>>> links={"foo":"url1","bar":"url2","baz":"url3",}
>>> k = links.keys()
>>> for i in range(0, len(k)):
... print(links[ k[i] ])
...
url3
url1
url2
变量i包含当前位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.