这看起来很简单,但我无法让它发挥作用。我正在使用 Python 3 。
我有一个嵌套的for循环
for x in list:
ch_id_dic[i]='channel_id'
ch_id_dic2= dict((v,k) for k,v in ch_id_dic.items())
for y in list_2:
ch_id_dic[j]='description'
ch_id_dic2= dict((v,k) for k,v in ch_id_dic.items())
break
在中断后,它会通过列表的第二个元素,但随后在嵌套的for循环中再次转到第一个元素。我想要它去第二个。
有人可以帮帮我吗?
...谢谢
答案 0 :(得分:1)
请注意,我已将此标记为CW帖子以将其标记为已回答。我不赞成这个答案,并将其全部交给Patrick Haugh,他在评论中回答。
zip
。您需要同时迭代这两个列表。 zip(list1,list2)
函数采用两个大小相等的列表,并通过[(list1[index],list2[index]) for index in range(len(list1))]
之类的操作将它们转换为单个列表。
答案 1 :(得分:0)
break
语句结束当前循环。在您的情况下,正如您所注意到的,它会停止嵌套循环并继续外部循环的下一次迭代。
听起来您正在尝试保持外部循环的索引与内部匹配,因此使用enumerate
函数跟踪外部循环的索引。
for idx, x in enuerate(list):
ch_id_dic[i] = 'channel_id'
ch_id_dic2 = dict((v,k) for k,v in ch_id_dic.items())
for y in range(idx, len(list_2)):
ch_id_dic[j] = 'description'
ch_id_dic2 = dict((v,k) for k,v in ch_id_dic.items())
break
如果您需要在某个时刻使用y的旧值,请使用list_2[y]
。