TypeError: list.append 只接受一个参数(给定 2 个)

目录

TypeError: list.append takes exactly one argument (2 given)

  1. TypeError: list.append 只接受一个参数(给定 2 个)
  2. TextIOWrapper.write() 只接受一个参数(给定 2 个)

TypeError: list.append 只接受一个参数(给定 2 个)

当我们将多个参数传递给方法时,会出现 Python“TypeError: list.append() takes exactly one argument (2 given)” list.append

要解决该错误,请将包含参数的列表传递给该
append方法或使用该extend()方法。

typeerror list append 恰好接受一个给定的参数 2

下面是错误如何发生的示例。

主程序
my_list = ['a', 'b'] # ⛔️ TypeError: list.append() takes exactly one argument (2 given) my_list.append('c', 'd')

list.append()方法采用单个值并将其添加到列表的末尾。

对集合中的元素进行分组

如果您有列表列表(二维列表)或元组列表,请将参数分组到一个集合中并将单个值传递给该方法append()

主程序
my_list = [['a', 'b']] my_list.append(['c', 'd']) print(my_list) # 👉️ [['a', 'b'], ['c', 'd']]

list.append ()方法将一个项目添加到列表的末尾。

append()方法采用单个值作为参数。

该方法None在改变原始列表时返回。

用于list.extend()将多个项目附加到列表

如果您打算将多个项目附加到列表中,请改用该list.extend()
方法。

主程序
my_list = ['a', 'b'] my_list.extend(['c', 'd', 'e']) print(my_list) # 👉️ ['a', 'b', 'c', 'd', 'e']

list.extend方法采用可迭代对象(例如列表)并通过附加可迭代对象中
所有项目来扩展列表。

该方法在改变原始列表时list.extend返回。None

请注意, bothlist.append()和 都list.extend()采用一个参数——一个可迭代的。

因此,如果我们将多个以逗号分隔的参数传递给任一方法,就会导致错误。

TextIOWrapper.write() 只接受一个参数(给定 2 个)

当我们将多个参数传递给方法时,会出现 Python“TypeError: TextIOWrapper.write() takes exactly one argument (2 given)” write()

要解决该错误,请使用加法 (+) 运算符连接方法调用中的字符串。

typeerror textiowrapper write 只接受一个给定的参数 2

下面是错误如何发生的示例。

主程序
file_name = 'example.txt' with open(file_name, 'w', encoding='utf-8') as my_file: # ⛔️ TypeError: TextIOWrapper.write() takes exactly one argument (2 given) my_file.write('first line', '\n') my_file.write('second line', '\n') my_file.write('third line', '\n')

请注意,我们使用逗号分隔两个字符串,因此我们将 2 个参数传递给该write()方法,但该方法采用单个字符串。

使用加法(+)运算符解决错误

解决该错误的一种方法是使用
加法 (+) 运算符连接两个字符串。

主程序
file_name = 'example.txt' with open(file_name, 'w', encoding='utf-8') as my_file: my_file.write('first line' + '\n') my_file.write('second line' + '\n') my_file.write('third line' + '\n')

我们用加号替换了每个逗号+以连接两个字符串。

主程序
print('a' + 'b' + 'c') # 👉️ 'abc'

使用格式化字符串文字来解决错误

另一种方法是使用
格式化字符串文字

主程序
file_name = 'example.txt' first = 'first line' second = 'second line' third = 'third line' with open(file_name, 'w', encoding='utf-8') as my_file: my_file.write(f'{first}\n') my_file.write(f'{second}\n') my_file.write(f'{third}\n')
格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.

确保将表达式括在大括号 – 中{expression}

with open()语法负责自动关闭文件,即使抛出异常也是如此。

使用open()函数代替with语句

或者,您可以将文件对象存储到变量中并手动关闭它。

主程序
file_name = 'example.txt' first = 'first line' second = 'second line' third = 'third line' my_file = open(file_name, 'w', encoding='utf-8') my_file.write(f'{first}\n') my_file.write(f'{second}\n') my_file.write(f'{third}\n') my_file.close()

请注意,最好使用with open()语法,因为它会在我们完成后自动关闭文件。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: