【问题标题】:How to access the next item of a list, inside the (for item in list) loop ? (Python 3)如何在 (for item in list) 循环内访问列表的下一项? (Python 3)
【发布时间】:2020-04-21 17:39:03
【问题描述】:

想象一个虚构的列表

for item in list: 
    print(item)      
    print(_________) # Fill the blanks to print next item in list

我会寻找一个代码来替换上述代码的空白以打印列表中的下一项。

【问题讨论】:

标签: python python-3.x list loops


【解决方案1】:
for i,item in enumerate(list):
    if i < len(list)-1:
        print(list[i])
        print(list[i+1])

【讨论】:

    【解决方案2】:

    你可以使用 zip:

    for item,nextItem in zip(list,list[1:]+[None]): 
        print(item)      
        print(nextItem)
    

    【讨论】:

      【解决方案3】:

      此代码仅在列表中没有重复条目时才有效。我将列表的名称更改为data,因为覆盖内置名称list 是个坏主意(即使这是一个示例,我也不能强迫自己这样做)。

      data = ['A', 1, 'B', 2, 'C']
      for item in data: 
          print(item)      
          print(data[data.index(item) + 1])
      

      目前,这段代码在最后一个元素上崩溃,因为它试图访问最后一个元素之后的元素。您可以通过将行替换为 print('' if data.index(item) + 1 == len(data) else data[data.index(item) + 1]) 来解决此问题。

      我希望问题是关于作业或类似的,因为没有人会/不应该在实际生产中编写这样的代码。

      【讨论】:

      • 大声笑不,这只是我脑海中浮现的一个问题,我期待这样的事情,非常感谢您的努力(和列表 = 数据)。我想我们可以复制列表并在其上循环,在每次迭代后删除项目以避免重复问题。
      • 我很高兴你告诉我。 :)
      【解决方案4】:

      我建议枚举然后使用索引来访问下一个。您需要防止超出范围。

      for idx, val in enumerate(lst):
          print(val)
          print(list[idx+1])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 2018-02-15
        • 1970-01-01
        • 2019-08-27
        • 2023-01-19
        • 2016-09-04
        相关资源
        最近更新 更多