我的问题是制作一个python程序,它填充方形矩阵的主对角线,其行号和从右到左的对角线及其列号。矩阵的其余元素被初始化为元素的索引之和。
所以我用以下代码解决了这个问题,但是当我尝试运行它时,它给出了以下错误:
Traceback (most recent call last):
File "/home/shinigami/prac5.py", line 21, in <module>
a[i].append(p)
AttributeError: 'int' object has no attribute 'append'
请告诉我是否有另一种方法可以在python中制作2D List并从用户那里获取输入!
a=[]
dimen=input('Enter the no of rows you want ? ')
for i in range(dimen):
for j in range(dimen):
i=int(i)
j=int(j)
#print('ENter the value for the',i+1,'row and',j+,'column')
#p=input()
if(j==0):
if (j==i):
a.append(i+1)
else:
a.append(i+j+2)
else:
if ((i+j)==(dimen-1)):
a[i].append(j+1)
else:
p=i+j+2
a[i].append(p)
for i in range(dimen):
for j in range(dimen):
i=int(i)
j=int(j)
print(" ",a[i][j])
print("")
答案 0 :(得分:0)
Traceback (most recent call last): File "/home/shinigami/prac5.py", line 21, in a[i].append(p) AttributeError: 'int' object has no attribute 'append'
您的变量a
是list
int
个a[i].append(...)
。当您写append
时,您尝试在int
类型上调用a.append(...)
方法,这会导致错误。
写a
很好,因为list
是list
,但只要您索引进入append
,就可以了解>>> a = [i for i in range(5)]
>>> a
[0, 1, 2, 3, 4]
>>> a.append(5)
>>> a
[0, 1, 2, 3, 4, 5]
>>> a[2].append(6) # won't work!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'append'
。处理列表中的数字,他们没有>>> from pprint import pprint as pp
>>> dim = 2 # take user input here
>>> matrix = [(i, j) for i in range(dim) for j in range(dim)]
>>> pp(matrix)
[(0, 0), (0, 1), (1, 0), (1, 1)]
#
# Index into the matrix as you normally would.
#
>>> matrix[1][0]
0
>>> matrix[1][1]
1
方法。例如:
n = m.country.class == String
只需确保您使用的是正确的类型。您的代码中的逻辑目前非常复杂,因此您应该简化它。
另外,让我知道他们是制作2D LIST的另一种方式
您可以使用列表推导。例如:
n
上面是使用Python3测试的,但如果需要,你可以将它改编为Python2。
答案 1 :(得分:0)
我猜你想要像这样初始化~/abc.csv
数组的元素
/home/nishant/abs.csv
答案 2 :(得分:-2)
dimen是一个字符串而不是int 试着这样做
dimen=int(input('Enter the no of rows you want ? '))
这会将用户的输入转换为int
这是您的固定代码:
a=[]
dimen=int(input('Enter the no of rows you want ? '))
for i in range(dimen):
for j in range(dimen):
i=int(i)
j=int(j)
#print('ENter the value for the',i+1,'row and',j+,'column')
#p=input()
if(j==0):
if (j==i):
a.append(i+1)
else:
a.append(i+j+2)
else:
if ((i+j)==(dimen-1)):
a[i]=j+1
else:
p=i+j+2
a[i]=p
for i in range(dimen):
for j in range(dimen):
i=int(i)
j=int(j)
print(" ",a[i][j])
print("")
请注意,您无法将某些内容添加到[i]中。您必须使[i]等于某个值