嵌套for循环,休息

时间:2017-12-15 01:01:41

标签: python

这看起来很简单,但我无法让它发挥作用。我正在使用 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循环中再次转到第一个元素。我想要它去第二个。

有人可以帮帮我吗?

...谢谢

2 个答案:

答案 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]