python - 使用 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 的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)
推荐阅读
- python - @NaverNews.Default NameError:未定义名称“NaverNews”
- python - 结合使用 python 消除常见列的 pandas 数据框
- python - 为什么 BeautifulSoup 找不到包含文本的标签,但我可以运行“查找”并查看 HTML 中的文本?
- php - 如何从两个表构建表,一个具有无用的唯一标识符(WordPress wp_usermeta 表)
- regex - 我如何只在正则表达式中找到换行符?
- java - 在 Intellji Idea 中生成 jar 时如何设置类路径?
- scala - 为什么scala不能将函数名直接传递给val?
- javascript - 使用位置的动画组件“to”属性的 setAttribute 无法设置
- java - 首先按值排序键值对,然后按键。(类似于基数排序)。我需要维护键值关系
- macros - 嵌套在 let 中的 if 子句在宏内未按预期工作