python - 从列表中推断元组值时 Python 索引超出范围
问题描述
我是 Python 新手,我正在尝试做以下练习:
使用 for 循环,获取以下列表并根据列表元组的值的总和对其进行排序:[(1,5),(9,0),(12,3),(5,4) ,(13,6),(1,1)]
但是,当我编写以下代码时:
list1 = [(1,5),(9,0),(12,3),(5,4),(13,6),(1,1)]
tuple1 = [first[0] for first in list1]
tuple2 = [second[1] for second in list1]
list2 = []
for i in tuple1:
list2.append(tuple1[i] + tuple2[i])
print(list2)
我不断收到以下错误:
Traceback (most recent call last):
File "PythonExercises.py", line 11, in <module>
list2.append(tuple1[i] + tuple2[i])
IndexError: list index out of range
我需要获取元组值之间的总和,然后将它们存储在一个空列表中并对该列表进行排序,但是,如果我应用该方法,我似乎无法工作。有人能帮我吗?干杯。
解决方案
这里的主要问题在于线路for i in tuple1
。
你tuple1
的是[1,9,12,5,13,1]
。当 时i=9
,您的列表明显超出范围(其长度仅为 6)。改为使用for i in range(len(tuple1))
。完整的代码将是
tuple1 = [first[0] for first in list1]
tuple2 = [second[1] for second in list1]
list2 = []
for i in range(len(tuple1)):
list2.append(tuple1[i] + tuple2[i])
print(list2)
推荐阅读
- vb.net - 如何在 for 循环中调整图片框的大小
- kubernetes - 如何在 ubuntu 上离线安装 kubernetes
- java - TestNG 与单个驱动程序实例并行执行
- .net - 尽管没有错误,但日志记录不起作用
- twilio - Twilio 可编程聊天:是什么导致 JS SDK 中的“TypeError:_parser_1$Parser$pars 未定义”?
- sql - SQL查询根据各自的用户选择最新的5条记录?
- excel - 如果 A 列中的值等于另一列中的值
- java - JTree 编辑器组件隐藏了 JTree
- continuous-integration - 让 ArgoCD 和 BuildKite 相互通知
- c# - 从 EF-database-first 方法更改生成的上下文是不好的做法吗?