【问题标题】:Iterate over a list, getting multiple items at once [duplicate]遍历列表,一次获取多个项目[重复]
【发布时间】:2021-05-18 21:56:21
【问题描述】:

我有一个数字列表,我想成对迭代,但不跳过项目。 例如:

myList = [1,2,3,4,5]
for one,two in myList:
    print(one,two)

我要打印的,

1,2
2,3
3,4
4,5

我目前正在使用列表索引并手动获取其他项目,但我想知道是否有“正确”的方法来执行此操作。

【问题讨论】:

标签: python list iteration


【解决方案1】:

行之有效的方法通常是正确的方法......

原则上,您可以使用自身的延迟切片压缩列表:

myList = [1,2,3,4,5]
for one,two in zip(myList, myList[1:]):
    print(one,two, sep=",")

注意zip 以最短的给定迭代结束,因此它将在较短的切片上结束;无需同时缩短完整的myList 参数。

【讨论】:

  • 谢谢,这完全符合我的要求!
【解决方案2】:

你可以zip列表本身,只是偏移1个项目。

myList = [1,2,3,4,5]
for x, y in zip(myList, myList[1:]):
    print(f'{x},{y}')

哪个打印:

1,2
2,3
3,4
4,5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2013-08-26
    • 2014-04-23
    相关资源
    最近更新 更多