python - “i for i”有什么作用,它是如何工作的?除了在列表中建立索引之外,它是否有用?
问题描述
当我在搜索如何在列表中查找项目的索引时,答案包括一些我无法弄清楚的代码。
具体来说:
[i for i, j in enumerate(['foo', 'bar', 'baz']) if j == 'bar']
我理解了大部分内容,但“ i for i
”部分让我感到困惑。我对正常for
循环非常熟悉,但我不明白这一点,有人可以解释一下吗?
解决方案
我喜欢将列表理解分解为正常的 for 循环,以帮助我理解它们在做什么(或在我自己的故障排除中)。
output = [i for i, j in enumerate(['foo', 'bar', 'baz']) if j == 'bar']
是相同的:
output = []
for i, j in enumerate(['foo', 'bar', 'baz']):
if j == 'bar':
output.append(i)
列表推导,尤其是大型推导,比传统的 for 循环运行得更快。
推荐阅读
- azure-data-factory-2 - 数据工厂 Power Query DFExecutorUserError UnsafeProjection$
- frontend - 在cypress中找到一个找不到的元素点击
- sql - oracle 空间:ANYINTERACT 与 CONTAINS
- python - 使用 python 抓取网页(BeautifulSoup 和请求)
- android - 如何使用“高程叠加”(在夜间模式下)使渐变的 endColor 与 MaterialCardView 的背景颜色相同?
- javascript - Javascript Regex - 如何删除中间有大写字母的单词?
- java - 如何从按特定字段过滤的 Kafka 表中读取?
- selenium - 刮掉这个字段
- linux - 我有 2 个挂载命名空间我可以让其中一个在 USB 设备上看不到另一个挂载命名空间创建文件吗?
- javascript - Node, javascript, 读取目录下的所有文件并返回满足特定条件的行