在有关索引的列表分配中出现错误?
Getting error in list assignment about index?
我最近开始研究 Python,当我试图 运行 书中的代码(经过我的修改)时,我得到了错误:
IndexError: list assignment index out of range
in : `Names[len(Names)]=name`
我在网上看到了一些关于这个错误的问题,但无法弄明白。
Names=[]
num=0
name=''
while True :
print('Enter the name of person '+str(len(Names)+1) + '(or Enter nothing to stop)')
name=input()
if name == '' :
break
Names[len(Names)]=name
print('the person names are:')
for num in range(len(Names)+1) :
print(' '+Names[num])
您似乎想将某些内容附加到现有列表。为什么不使用 .append()
?这不会给你 IndexError。
Names.append(name)
另一个相同的错误:你不应该写 range(len(Names) + 1)
。 range(len(Names))
足以让您遍历整个列表:
for num in range(len(Names)):
print(' '+Names[num])
另一个建议:您不需要 for 循环来打印结果,根本。只需使用 str.join()
:
print(' '.join(Names))
您不能访问超出范围的索引
例如:
>>> l = [1,2,3]
>>> l = [0,1,2]
>>> l[3] = "New"
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
l[3] = "New"
IndexError: list assignment index out of range
为此,您必须 append
将新数据添加到 list
。
>>> l.append("new")
>>> l
[0, 1, 2, 'new']
你可以试试:
Names=[]
num=0
name=''
while True :
print('Enter the name of person '+str(len(Names)+1) + '(or Enter nothing to stop)')
name=input()
if name == '' :
break
Names.append(name)
print('the person names are:')
for num in range(len(Names)) :
print(' '+Names[num])
只需使用附加功能将新名称插入现有名称列表即可。
语法:-
如果您想将 'foo' 附加到现有名称列表中,即 'Names',请键入 Names.append('foo').
我最近开始研究 Python,当我试图 运行 书中的代码(经过我的修改)时,我得到了错误:
IndexError: list assignment index out of range
in : `Names[len(Names)]=name`
我在网上看到了一些关于这个错误的问题,但无法弄明白。
Names=[]
num=0
name=''
while True :
print('Enter the name of person '+str(len(Names)+1) + '(or Enter nothing to stop)')
name=input()
if name == '' :
break
Names[len(Names)]=name
print('the person names are:')
for num in range(len(Names)+1) :
print(' '+Names[num])
您似乎想将某些内容附加到现有列表。为什么不使用 .append()
?这不会给你 IndexError。
Names.append(name)
另一个相同的错误:你不应该写 range(len(Names) + 1)
。 range(len(Names))
足以让您遍历整个列表:
for num in range(len(Names)):
print(' '+Names[num])
另一个建议:您不需要 for 循环来打印结果,根本。只需使用 str.join()
:
print(' '.join(Names))
您不能访问超出范围的索引 例如:
>>> l = [1,2,3]
>>> l = [0,1,2]
>>> l[3] = "New"
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
l[3] = "New"
IndexError: list assignment index out of range
为此,您必须 append
将新数据添加到 list
。
>>> l.append("new")
>>> l
[0, 1, 2, 'new']
你可以试试:
Names=[]
num=0
name=''
while True :
print('Enter the name of person '+str(len(Names)+1) + '(or Enter nothing to stop)')
name=input()
if name == '' :
break
Names.append(name)
print('the person names are:')
for num in range(len(Names)) :
print(' '+Names[num])
只需使用附加功能将新名称插入现有名称列表即可。
语法:-
如果您想将 'foo' 附加到现有名称列表中,即 'Names',请键入 Names.append('foo').