[英]compare list type values in dictionaries in python 3
我正在为实际练习创建游戏,但是现在我陷入了困境,因此需要一点帮助。
我已经学习了几个月,现在遇到了以下问题:
我有两个词典,第一个key
- value
是user
- predictions
。
第二个是race_event
- the_result
。
User_predictions = {"Daniel": ["1st", "2nd", "3rd","4th","5th","6th","7th","8th","9th","10th"], ......., "Mike":"[10 more entries]"}
Result_event = {"Australia": [Results 1-20], ......, "Monaco":"[Results 1-20]"}
到目前为止,我有7个比赛项目
我的目的是比较两个词典中的列表。
即查看Daniels,....., Mikes
澳大利亚的Daniels,....., Mikes
列表,并将其与result_event
词典中的澳大利亚列表进行比较(即第一个值)
我意识到我可能对此过于复杂了,但是输入正确的代码应该可以解决所有问题。 我一直在网上寻找各种技巧,但没有运气,我仍然是一个初学者,因此,如果有内置功能或您认为可能有帮助的任何功能,请分享。
或者,如果您认为我应该重新格式化dict值或尝试其他操作,请分享。 我没有上传任何代码,因为似乎没有任何效果。
也许您可以将每个用户的预测与事件结果一起压缩,然后并排显示数据?
例如:
for user in User_predictions:
compare = zip(User_predictions[user], Result_event['Australia'])
print('Position', '{} prediction'.format(user), 'Result', sep=',')
for position, (prediction, result) in enumerate(compare, start=1):
print(position, prediction, result, sep=',')
因此,我进行了一些重新命名的方法,以使其更加结构化。
predictions = {"australia" : {"UserA" : ["Hamilton", "Vettel", "Bottas"], "UserB" : ["Vettel", "Raikonnen", "Hamilton"]}}
results = {"australia" : ["Vettel", "Bottas", "Verstappen"]}
for country, list_finish in results.items():
print("Positions for GP in {country}:".format(country=country))
for position_number, position_finisher in enumerate(list_finish, 1):
print(str(position_number)+". "+position_finisher)
print("These were the tips:")
for username, list_prediction in predictions[country].items():
print("Prediction by {user}:".format(user = username))
for position_number, position_finisher in enumerate(list_prediction, 1):
print(str(position_number)+". "+position_finisher)
print("\n\n")
如果将其复制并粘贴到脚本中,将得到以下输出:
Positions for GP in australia:
1. Vettel
2. Bottas
3. Verstappen
These were the tips:
Prediction by UserA:
1. Hamilton
2. Vettel
3. Bottas
Prediction by UserB:
1. Vettel
2. Raikonnen
3. Hamilton
那是你要的吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.