我有一个txt文件中的数据表,我把它带入Python中。
a1_file=open(file_path,'r')
然后我进入第二行跳过页眉。
a1_file.readline()
line_string=a1_file.readline()
作为一个逗号分隔的函数,我想得到一个列表,其中前5个逗号的位置被存储。为了达到这个目的,我尝试使用这个函数。
def commas_in_line(table_row):
commas=[]
while len(commas) <5:
if len(commas)==0:
i=0
else:
i=commas[-1]+1
k=table_row.find(',',i)
commas=commas.append(k)
return commas
我用以下方法调用这个函数:
commas_in_line(line_string)
代码报告了这个错误:
Traceback (most recent call last):
File "<pyshell#52>", line 1, in <module>
commas_in_line(line_string)
File "C:/1WritingPrograms.py", line 11, in commas_in_line
while len(commas) <5:
TypeError: object of type 'NoneType' has no len()
与
>>> line_string
'30/04/2020,30,4,2020,122,0,Afghanistan,AF,AFG,37172386,Asia\n'
我试着在函数中代入。
commas=commas.append(k)
用:
commas=commas+[k]
就可以了,但是我怎么能使用 append
方法?为什么会失败?
本质上 .append()
并不返回新的数组。.append()
有点像一个 inplace 函数,其中的值被追加到数组中。所以你不需要返回任何东西。当你说 commas=commas.append(k)
,返回一个新的实体,它是NoneType。请保持它为 commas.append(k)
你可以用以下方法向一个 python 列表中添加值。
commas.append(k)
你可以使用 =
操作符来定义一个列表,而不是改变一个列表。例如,对于
commas = ['a', 'b', 'c']
commas.append('d')
commas
现在将成为 (a, b, c, d).
这里有更多关于python列表的内容 https:/www.w3schools.compythonpython_lists.asp