我想:
input
作为由空格分隔的整数(但以字符串形式)。A + B
。A + B
将此int()
转换为整数。list
C
。我的代码:
C = list()
for a in range(0, 4):
A, B = input().split()
C[a] = int(A + B)
但它显示:
IndexError:列表分配索引超出范围
我无法理解这个问题。 a
如何离开range
(它必须从0
开始3
开始)?
为什么会显示此错误?
答案 0 :(得分:1)
为什么发生错误:
如果
index
已存在list
,则只能引用index
。在每次迭代的最后一行,您指的是尚未创建的索引,例如,在第一次迭代中,您尝试更改0
list
,由于当时C.append(int(A + B))
为空,因此不存在。每次迭代都会发生同样的情况。
将项目添加到列表的正确方法是:
list
或者你可以用超pythonic列表理解来解决很多线条。这是基于您在循环中添加到C = [sum(int(item) for item in input("Enter two space-separated numbers: ").split()) for i in range(4)]
的事实,但这简化了它,因为您不需要明确地分配内容:
{{1}}
以上内容将取代您在问题中发布的所有代码。
答案 1 :(得分:0)
正确的方法是将元素附加到列表中,如下所示:
C.append(int(A+B))
并且不要担心指数
答案 2 :(得分:0)
这是编写代码的更加pythonic方式:
c = []
for _ in range(4): # defaults to starting at 0
c.append(sum(int(i) for i in input("Enter two space-separated numbers").split()))
或者一个漂亮的小单行:
c = [sum(int(i) for i in input("Enter two space-separated numbers").split()) for _ in range(4)]