python - 在 Python 的 for 循环中使用多个变量
问题描述
我试图更深入地了解for
Python 中不同数据类型的循环方式。使用 for 循环迭代数组的最简单方法是
for i in range(len(array)):
do_something(array[i])
我也知道我可以
for i in array:
do_something(i)
我想知道的是这是做什么的
for i, j in range(len(array)):
# What is i and j here?
或者
for i, j in array:
# What is i and j in this case?
如果我尝试对dict
ionaries 或使用相同的想法会发生什么tuples
?
解决方案
最简单最好的方法是第二种,而不是第一种!
for i in array:
do_something(i)
永远不要这样做,它不必要地使代码复杂化:
for i in range(len(array)):
do_something(array[i])
如果出于某种原因需要数组中的索引(通常不需要),请改为执行以下操作:
for i, element in enumerate(array):
print("working with index", i)
do_something(element)
这只是一个错误,TypeError: 'int' object is not iterable
当您尝试将一个整数解压缩为两个名称时会得到:
for i, j in range(len(array)):
# What is i and j here?
这个可能有效,假设数组是“二维的”:
for i, j in array:
# What is i and j in this case?
二维数组的一个示例是一对列表:
>>> for i, j in [(0, 1), ('a', 'b')]:
... print('i:', i, 'j:', j)
...
i: 0 j: 1
i: a j: b
注意: ['these', 'structures']
在 Python 中称为列表,而不是数组。
推荐阅读
- php - 如何在laravel中获取两列值,其中第一个是键,第二个是值?
- mysql - 合并多个相关的 MySQL 表并返回 JSON
- android - 使用“enableDangerousExperimentalLeanBuilds”时,世博会构建崩溃
- amazon-web-services - 如何使用 ingress istio 网关的部署为 AWS NLB/ALB 配置 AWS 标签?
- ios - Xcode 没有看到。obj-c 项目中的 swift 文件
- c - 提高通用交换的性能
- javascript - Dayjs 日历返回错误的格式
- python - Python:将文本拆分成单独的英文句子;保留标点符号
- vue.js - 如何减小 BarChart Value 中阴影的宽度
- python - 在 Python MySQL 中输出时未定义值?