具有更直观上限的 Python for 循环?

标签 python for-loop

有时候,记住默认情况下排除 for 循环的上限让我有点困惑。有什么办法让它具有包容性吗?

最佳答案

十分之九,如果您正在编写一个 Python for 循环来迭代一系列数字,然后使用这些数字索引到列表或其他容器中,那么您就是这样做的错误的。换句话说,而不是这样做:

for i in range(len(container)):
    print container[i]

你应该这样做:

for item in container:
    print item

但是等等!你反对。如果因为要以某种方式修改项目而需要索引怎么办?执行此操作的 Pythonic 方法是使用 enumerate() 内置函数。

for i, item in enumerate(container):
    print item
    container[i] += 1

如果你不介意复制你的列表,那么列表理解通常是最好的选择:

container = [item + 1 for item in container]

或者如果您需要就地修改列表,试试这个,它结合了切片赋值(替换现有列表)和生成器表达式(延迟修改项目):

 container[:] = (item + 1 for item in container)

关于具有更直观上限的 Python for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10884253/

相关文章:

python - urllib2.urlopen 引发 HTTP 错误 400 : Bad Request

c++ - Python 列表等同于 C++?

python - 在python中生成随机值列表,其中每个值出现一定的百分比

python - 云函数获取 `getIamPolicy`的访问 token

jquery - Pylons 和 NodeJS/Comet

c++ - 查找数组的大小

Python - 没有任何返回的生成器案例

javascript - 如何在 for 循环中每次强制异步完成,并修改全局变量?

r - 根据周围的行值子集数据框

c - 意外的无限 for 循环