python - 我使用 python 创建了一个排行榜,但我的代码打印在一行中。我希望它像排行榜格式一样单独打印每个元素
问题描述
这是我的代码
file=open("leaderboard.txt", "a")
file.write(str(winnerpts) + ", " + winneruser + "\n")
file.close()
with open('leaderboard.txt', 'r') as f:
leaderboard = [line.replace('\n','') for line in f.readlines()]
leaderboard.sort(reverse=True)
for idx, item in enumerate(leaderboard):
if item.split(', ')[1] == winneruser[1] and int(item.split(', ')[1]) < int(winneruser[9]):
leaderboard[idx] = '{}, {}'.format(winneruser[1], winneruser[9])
else:
pass
with open('leaderboard.txt', 'w') as f:
for item in leaderboard:
f.write("%s\n" % item)
with open("leaderboard.txt") as leaderboard:
head = [next(leaderboard).split() for x in range(5)]
print(head)
这是结果
[['98,', 'ioi'], ['90,', 'io'], ['72,', 'io'], ['72,', 'io'], ['67,', 'ioi']]
我希望它打印这样的东西:
['98,', 'ioi']
['90,', 'io']
['72,', 'io']
['72,', 'io']
['67,', 'ioi']
如果可能的话,方括号也可以删除吗?
解决方案
假设您有如下列表elements
:
elements = [['98,', 'ioi'], ['90,', 'io'], ['72,', 'io'], ['72,', 'io'], ['67,', 'ioi']]
你必须通过你的清单来达到你的结果。
for element in elements:
print(element)
你会得到:
['98,', 'ioi']
['90,', 'io']
['72,', 'io']
['72,', 'io']
['67,', 'ioi']
更新
您的代码如下所示:
with open("leaderboard.txt") as leaderboard:
head = [next(leaderboard).split() for x in range(5)]
print(head)
你必须这样做:
with open("leaderboard.txt") as leaderboard:
head = [next(leaderboard).split() for x in range(5)]
for element in head:
print(element)
更新
with open("leaderboard.txt") as leaderboard:
head = [next(leaderboard).split() for x in range(5)]
for element in head:
info = element[0] + " " + element[1] # add this line
print(info)
输出
98, ioi
90, io
72, io
72, io
67, ioi
推荐阅读
- node.js - 后端和前端的文件夹结构
- flutter - 如何在 Flutter 中让 Form 出现在键盘上方?
- python - 如何最好地实现一个只能调用一次 setter 的属性?
- c++ - 双变量的设置值与 VS2019 中的预期不同
- azure - 读取 ifelse true/false 活动输出的数据工厂活动
- pyspark - 循环一次 pyspark 数据框以查找包含值列表的行
- java - 对于 Object 中的数字,instanceOf Integer 失败
- docker - Docker 容器无故退出 137
- c - read() 函数是如何工作的?(缓冲区中的未读数据会怎样?)
- rust - 如何在`serde::ser::Serialize`的impl中跳过序列化?