繁体   English   中英

如何在python字典中自定义处理迭代?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM