我有一个简单的脚本问题。我实际上正在处理类似矩阵的值(就像这一个:[[1, 2, 3], [4, 5, 6]]
)。
在文件Input上,从文件中读取我实际得到NoneType
,尽管我在函数顶部定义了名称。这是我正在做的脚本:
with open("matrice.txt","r") as fichierMatrice:
a_matrice = [] # name defined
print(a_matrice)
for line in fichierMatrice:
print(line)
a_liste = line.split()
a_matrice = a_matrice.append(a_liste) # error here
print(a_matrice)
matrice.txt
具有以下内容:
1 2 3
4 5 6
在第11行,我收到错误:
AttributeError: 'NoneType' object has no attribute 'append'
所以我做错了什么?
答案 0 :(得分:3)
list.append
返回None
。执行以下append
时,您要将None
分配给a_matrix
。这将导致循环的下一次迭代出现异常。
a_matrice = a_matrice.append(a_liste)
修复非常简单。只需删除作业。
a_matrice.append(a_liste)
答案 1 :(得分:1)
.append()
是一个内置函数,不返回任何内容,因此None
。
>>> lst = []
>>> new = lst.append(8)
>>> lst
[8]
>>> new
>>> print new
None
>>>
相反,只需删除您要分配的内容:
with open("matrice.txt","r") as fichierMatrice:
a_matrice = [] # name defined
print(a_matrice)
for line in fichierMatrice:
print(line)
a_liste = line.split()
a_matrice.append(a_liste) # error here
print(a_matrice)
同样适用于.sort()
和.insert()
:
.sort()
>>> lst = [9, 8]
>>> lst = lst.sort()
>>> print lst
None
.insert()
>>> lst = [9, 8]
>>> lst = lst.insert(0, 7)
>>> print lst
None
>>>