【问题标题】:How to iterate over a list two at a time in Python 3? [duplicate]如何在 Python 3 中一次遍历两个列表? [复制]
【发布时间】:2018-11-26 19:31:16
【问题描述】:

我正在尝试迭代一个列表,一次两个。这是我的代码:

list_1 = [1,3,2,4,3,1,2,7]

输出应该是这样的(迭代应该从第一个元素开始):

1
2
3
2

七,不存在,因为迭代只有2。

这是我的尝试:

nums = [1,3,2,4,3,1,2,7]
for x, y in zip(*[iter(nums)]*2):
    print(x, y)

但我的输出是:

1 3
2 4
3 1
2 7

如何使用 Python 3 实现正确的迭代?

【问题讨论】:

  • 嗯...for e in list_1[::2] 之类的内容是否与您正在寻找的内容相似?
  • 为什么不试试print(x)
  • 我将最后一个问题添加到重复列表中,因为您只是在此处打印元素,因此您可以考虑使用itertools.islice 以避免复制您的列表(如果它很大)。

标签: python python-3.x


【解决方案1】:

您可以通过使用步骤(索引)像这样使用range

list_1 = [1,3,2,4,3,1,2,7]

for i in range(0,len(list_1),2):
    print(list_1[i])

或者只是使用python slice notation:

list_1 = [1,3,2,4,3,1,2,7]

for v in list_1[::2]:
    print(v)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多