我正在尝试将列表追加到自身,但是它说“正好有一个参数” 我尝试使用其他变量来存储分割线。
testfile = open(r'''C:\Users\shawa\Desktop\sampleg102.txt''' ,'r')
print(testfile)
word=list
for line in testfile:
line = line.lstrip()
word = word.append([1])
print(word)
,错误是
E:\vscode.source> python -u "e:\vscode.source\python\countingWords.py"
<_io.TextIOWrapper name='C:\\Users\\shawa\\Desktop\\sampleg102.txt'
mode='r' encoding='cp1252'>
Traceback (most recent call last):
File "e:\vscode.source\python\countingWords.py", line 7, in <module>
word = word.append([1])
TypeError: append() takes exactly one argument (0 given)
答案 0 :(得分:0)
要解释第一个错误,请看以下内容:
>>> list
<class 'list'>
>>> word = list
>>> word
<class 'list'>
>>> word = list()
>>> word
<list object at 0x...>
目前,您仅将名称list
分配给了名称word
。您需要调用list
构造函数才能实际创建列表。现在,方法list.append()
就地修改列表。它返回None
,您无需重新分配。
word = list()
# word = '' works too
for line in testfile:
line = line.lstrip()
word.append([1])
print(word)
您的代码目前将打印1的列表。如果您打算附加文件的行,请使用
word.append(line)
请注意,最好使用文字[]
空列表语法而不是调用list()
,因为这样可以很清楚地了解正在创建的内容。
答案 1 :(得分:0)
如果要在列表中追加行,则需要执行此操作。在您的代码中,您仅将[1]附加到列表单词。
testfile = open(r'''C:\Users\shawa\Desktop\sampleg102.txt''' ,'r')
print(testfile)
word=list()
for line in testfile:
line = line.lstrip()
word.append(1) #or word.append(line[1]) according to use case
print(word)
答案 2 :(得分:0)
您要查找的是word = list()而不是word = list。 list只是一个关键字,list()实例化