嗨,大家好我是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后而不是下一轮?
谢谢, 帕特里克
答案 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):