python - 列出函数中的附加方法不起作用
问题描述
我在 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()
有点像就地函数,其中值附加到数组中。所以你不必返回任何东西。当您说 时commas=commas.append(k)
,将返回一个新实体,即 NoneType。请留下它commas.append(k)
推荐阅读
- java - 标准生成器解析路径内容
- python - 矩阵向量的乘法
- vba - 如何通过 VBA 重新填充 microsoft access 365 中的导航窗格?
- typescript - 如何将获取的数据与 Next.js 和 TypeScript 一起使用?
- javascript - 悬停在 D3.js 折线图中未定义的数据点返回
- mysql - 如何计算表中值之间的时间?
- python - 如何确保用户输入仅使用 try 和 except
- android - 获取 'E/RecyclerView: 未连接适配器;Kotlin tabbedActivity 中的跳过布局
- laravel - 如何避免重复的数据库记录但针对特定用户?
- google-chrome - 如何为 Chrome/Chromium 的“--enable-features=”标志编写参数