首页 > 解决方案 > 我使用 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']

如果可能的话,方括号也可以删除吗?

标签: pythonpython-3.x

解决方案


假设您有如下列表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

推荐阅读