Python for循环,不在下一轮更改变量

时间:2018-01-17 17:33:07

标签: python

嗨,大家好我是python的新手。我有一个关于双循环的问题:

for i in range (rounds):
    for n, data in G.nodes ().items ():
        if data ["example"] == "x":

            for neighbor in nx.all_neighbors (G, n):
                if -------------             

    for n, data in G.nodes ().items ():
        if data ["test"] == "I" and random.random () < somevalue
            data ["test"] = "R"

        if data ["test"] == "NI":
            DO Something

最后这个循环正在改变数据中的某些状态[&#34; test&#34;] - Do Something。我的问题:我怎样才能设置状态/变量在2 ROUNDS后而不是下一轮?

谢谢, 帕特里克

1 个答案:

答案 0 :(得分:2)

您并不十分清楚自己要解决的问题,但如果您想跳过G.nodes()中的第一项,那么您可以采用以下几种方式来解决问题。在Python 2中,您可以将for循环更改为:

for n, data in G.nodes().items()[1:]:

最后的[1:]导致循环迭代列表的所有元素,除了第一个元素。此表示法称为切片,您可以在Understanding Python's slice notation找到更多信息。

在Python 3中,由于items()返回一个可迭代的,你不能使用切片表示法,一种方法是使用itertools.islice

import itertools

for n, data in itertools.islice(G.nodes().items(), 1, None):