首页 > 解决方案 > 使用 2 个变量循环遍历 Python 列表

问题描述

在 JavaScript 中,我可以使用两 (2) 个指针从列表的开头和结尾获取值,然后递增/递减指针以继续。例如:

for (let i = 0, j = list.length - 1; i < j; i++, j--) {
    console.log(i, j);
}

我如何能够在 Python 中完成同样的任务?我知道我可以通过以下方式获取当前索引:

for index in enumerate(list):
    print(index)

但是我怎么能也初始化另一个指针从末尾开始呢?

标签: python

解决方案


我假设您想要一个可以对索引做任何事情的解决方案,而不仅仅是打印出来。Python 的for循环还有其他优点。所以使用while循环。

i = 0
j = len(alist)
while i < j:
    print(i, j)  # or console.log(i, j) or whatever you want here
    i += 1
    j -= 1

这是使用类似的东西zip,它更pythonic。在这里,我说明了除了打印索引之外的其他操作。

alist = [3, 1, 4, 1, 5, 9]
llen = len(alist)
for i, j in zip(range(llen // 2), range(llen - 1, -1, -1)):
    print(alist[i], alist[j])

但是忽略索引并只使用列表中的项目更加pythonic,如

alist = [3, 1, 4, 1, 5, 9]
llen = len(alist)
for u, v in zip(alist[:llen // 2], alist[::-1]):
    print(u, v)

推荐阅读