python - 列表总是显示相同的结果 Python
问题描述
我的代码需要帮助,对于这个简单的问题,我很抱歉,因为我对 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"])
测试2.txt
John , 2
Michael , 3
实际结果
Michael - 3
Michael - 3
预期产出
John - 2
Michael - 3
解决方案
您正在更改循环之前创建的同一个字典。这就是为什么你最终得到引用同一对象的多个字典列表的原因。
请尝试:
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})
推荐阅读
- amazon-web-services - 仅通过使用 SQS::QueuePolicy 'principal' 属性的 Lambda 函数来限制对 SQS 的访问
- html - 导航栏菜单响应式
- java - Firebase 实施后没有静态方法
- angular - 可点击的 algolia 搜索结果?
- javascript - 如何使用 PWA 服务工作者在后台发送请求
- php - 如何在laravel中获取上个月的订单商品销售报告?
- sql - 根据列中的最近日期从表中获取过去 6 个月的数据
- mysql - GROUP BY 计数也缺少类型(Maria DB)
- terraform - 通过批处理提交来改造不同的行为
- katalon-studio - 可以在 Katalon Studio 中创建自定义标记视图吗?