我正在为练习游戏创建游戏,但是现在我陷入了困境,因此我需要一些帮助。
我已经学习了几个月,现在遇到了以下问题:
我有两个字典,第一个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
列表,并与澳大利亚的result_event
词典中的列表进行比较(即第一个值)
我知道我可能对此过于复杂了,但是输入正确的代码应该可以解决所有问题。 我一直在网上寻找各种技巧,但没有运气,我仍然是一个初学者,因此,如果有内置功能或您认为可能有帮助的任何功能,请分享。
或者,如果您认为我应该重新格式化dict值或尝试其他操作,请分享。我没有上传任何代码,因为似乎没有任何效果。
答案 0 :(得分:0)
也许您可以将每个用户的预测与事件结果压缩在一起,然后并排显示数据?
例如:
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=',')
答案 1 :(得分:0)
因此,我进行了一些重新命名,以使其更加结构化。
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
这就是你想要的吗?