想要将列表列表中的每个元素放入文件中[重复]

Posted

技术标签:

【中文标题】想要将列表列表中的每个元素放入文件中[重复]【英文标题】:Want to put each element in list of lists to a file [duplicate] 【发布时间】:2018-12-08 16:27:52 【问题描述】:

我正在制作一个高分列表,它的顺序应该由点数决定,即列表中列表的第二个元素。 这是我的代码:

from typing import List, Tuple

name1 = 'John'
name2 = 'Ron'
name3 = 'Jessie'
points1 = 2
points2 = 3
points3 = 1

highscore: List[Tuple[str, int]] = []
highscore.append((name1, points1))
highscore.append((name2, points2))
highscore.append((name3, points3))

print(highscore)

sorted_by_second = sorted(highscore, key=lambda X: X[1])

highscore_list= str(sorted_by_second)

将列表导出到文件

with open('highscore.txt', 'w') as f:
for item in highscore_list:
    f.write("%s\n" % item)

那么在文件中是这样的:

 [
 (
 J
 e
 s
 s
 i
 e
 ,

 1
 )
 ,

但我希望它在文件中看起来像这样:

  Jessie 1
  John   2

我如何做到这一点?

【问题讨论】:

您正在遍历一个字符串,因此遍历该字符串中的每个字符。只需省略字符串转换并正确格式化循环中的输出 查找 f 字符串。您一方面使用打字,另一方面使用 python 2.7 样式的字符串格式 - 这不能很好地结合在一起:docs.python.org/3/reference/lexical_analysis.html#f-strings 和 docs.python.org/3/library/string.html#formatspec 我使用 dicts 向我查找的骗子添加了一个简单的答案。你发现我的回答者here 和其他人也在使用泡菜 @Patrick Artner 谢谢,学到了新东西!我想通了! 【参考方案1】:

对(可选的)类型声明表示敬意!

您开始将其格式化为字符串有点太早了。最好将配对的结构保留更长时间:

for pair in sorted_by_second:
    f.write(f'pair\n')

或者,如果您愿意,可以将它们拆分为更灵活的formatting:

for name, points in sorted_by_second:
    f.write(f'name scored points.\n')

【讨论】:

谢谢你,它工作得很好! 我有一个后续问题:***.com/questions/53691108/…。如果你能帮助我,真的很感激。

以上是关于想要将列表列表中的每个元素放入文件中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何拆分每个第N个元素的Python列表

Java:有效地将列表中的项目放入 HashMap [重复]

对列表中每个元素索引的最大值求和 [关闭]

我如何将每个字节放入列表中

同时为列表中的两个元素和变量添加后缀[重复]

将列表中的缺失元素作为每个时间窗口组的行插入到 DataFrame