在Python中将元组列表写入文本文件

5 python tuples

我有一个格式列表:

("some string", "string symbol", some number)
Run Code Online (Sandbox Code Playgroud)

例如,("Apples", "=", 10).我需要将它们写入输出文件,如下所示:

Apples = 10
Run Code Online (Sandbox Code Playgroud)

我在使用write方法时遇到了麻烦.怎么做到呢?

Mat*_*hen 9

您可以使用:

for t in some_list:
  f.write(' '.join(str(s) for s in t) + '\n')
Run Code Online (Sandbox Code Playgroud)

这里f是你的file.


U-D*_*DON 7

list_of_tuples = [('Apples', '=', 10), ('Oranges', '<', 20)]
f = open('file.txt', 'w')
for t in list_of_tuples:
    line = ' '.join(str(x) for x in t)
    f.write(line + '\n')
f.close()
Run Code Online (Sandbox Code Playgroud)

给定元组列表,您可以在写入模式下打开文件.对于列表中的每个元组,将其所有元素转换为字符串,按空格连接以形成字符串,并将带有新行的字符串写入文件.然后关闭该文件.

编辑:没有意识到你开始使用元组列表.做出改变以反映这一点.

  • 只需`map(str,t)` - 删除lambda. (2认同)
  • 这里不需要lambda.列表理解是最佳实践,如果必须使用map,只需使用内置的`str`,如'''.join(map(str,t))` (2认同)
  • @ U-DON如果你使用``[str(x)for x in t]``或``map(str,t)``,你就要为每一行写一个列表对象.但**join()**方法接受一个生成器作为参数:``''.join((str(x)for x in t))``在这种情况下,生成器的parens可以省略: `''.join(str(x)for x in t)`` (2认同)