这是我的源代码我这样做而不使用导入数学
#2-d list append
n=int(input('enter final value'))
l=[]
for i in range(0,3):
l[i]=[]
if i==0:
for x in range(0,n+1):
if x%2==0:
l[i].append(x)
if i==1:
for x in range(0,n+1):
if x%2!=0:
l[i].append(x)
if i==2:
for x in range(0,n+1) and x!=1:
f=0
a=int(n/2)
for j in range(2,a):
if x%j==0:
f+=1
if(f==0):
l[i].append(x)
l.append(l[i])
print(l)
它显示以下错误:
Traceback (most recent call last):
File "C:/Users/New/Desktop/py/2_D.py", line 5, in <module>
l[i]=[]
IndexError: list assignment index out of range
我想知道如何更正我的代码以便能够插入二维列表
答案 0 :(得分:1)
l
是一个空列表。然后尝试将空列表分配给l
的第一个元素,但它没有第一个元素,因为它是空的。您可能希望append
使用l.append([])
。
注意,在行中:
for x in range(0,n+1) and x!=1:
条件需要在下一行进入if
语句,并在其后适当缩进后的代码块。
n=int(input('enter final value'))
l=[]
for i in range(0,3):
l.append([]) # append an empty list
if i==0:
for x in range(0,n+1):
if x%2==0:
l[i].append(x)
if i==1:
for x in range(0,n+1):
if x%2!=0:
l[i].append(x)
if i==2:
for x in range(0,n+1):
if x!=1: # Moved the if statement to a new line
f=0
a=int(n/2)
for j in range(2,a):
if x%j==0:
f+=1
if(f==0):
l[i].append(x)
l.append(l[i])
print(l)
答案 1 :(得分:0)
写下这一行:
l.append([])
代替
l[i] =[]
当你写l [i]解释器时尝试访问l [0]但l的长度为零。