伪代码L1 = [(i, L[i]) : i < len(L)]转Python代码问题咨询
伪代码含义解读
你提供的伪代码属于教学场景常用的简化列表推导写法,作用是遍历列表L的所有有效索引i,将每个索引和对应位置的元素组合为元组,最终生成由这些元组组成的新列表L1。
错误代码问题说明
- 第一种写法没有对i做循环遍历,仅做了单次条件判断,且i没有提前赋值,还存在变量名大小写错误(把小写i写成了大写I),无法得到预期结果
- 第二种写法使用的where语法不属于Python的合法语法规则,同样没有定义i的遍历范围,因此会报i未定义的错误
正确Python实现
方式1:和伪代码逻辑完全对齐的列表推导式
L1 = [(i, L[i]) for i in range(len(L))]
通过range(len(L))生成所有从0到len(L)-1的有效索引,遍历每个i生成对应元组,和伪代码逻辑1:1对应。
方式2:Python惯用优化写法
L1 = list(enumerate(L))
Python内置的enumerate函数默认会返回(索引, 元素)的迭代器,直接转为列表即可得到和伪代码完全一致的结果,写法更简洁高效。
内容的提问来源于stack exchange,提问作者Sophie S
相关产品推荐
相关产品推荐

