【问题标题】:Listing always display same result Python [duplicate]列表总是显示相同的结果 Python [重复]
【发布时间】:2020-09-24 19:32:07
【问题描述】:

我的代码需要帮助,对于这个简单的问题,我很抱歉,因为我对 python 非常陌生,尤其是在涉及到列表时。所以我想要我的结果是这两个名字将在排行榜列表中。 (将来文本文件中会有更多名称)
所以谁能帮我在列表中显示不同的名字谢谢。

scoring = {"Name": "", "WinStreak": 0}
leaderboard = []
count = 0
tester = 0

with open("testing2.txt", "r") as fileText:
    for line in fileText:
        scoring["Name"] = line.split()[0]
        winning = int(line.split()[2])
        scoring["WinStreak"] = winning
        leaderboard.append(scoring)


for display in leaderboard:
    print(display["Name"], "-", display["WinStreak"])

testing2.txt

John , 2
Michael , 3

实际结果

Michael - 3
Michael - 3

预期输出

John - 2
Michael - 3

【问题讨论】:

    标签: python list dictionary


    【解决方案1】:

    您正在更改循环之前创建的同一个字典。 这就是为什么您最终会得到引用同一对象的多个字典列表的原因。

    试试吧:

    with open("testing2.txt", "r") as fileText:
        for line in fileText:
            name = line.split()[0]
            winning = int(line.split()[2])
            leaderboard.append({"Name": name, "WinStreak": winning})
    

    【讨论】:

    • 谢谢,它成功了!
    • 乐于助人! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2013-02-25
    • 1970-01-01
    • 2019-04-01
    相关资源
    最近更新 更多