我遇到了一个问题,我已经尝试了几天但没有得到任何结果。我想比较两个字典,在一个字典中有“赛前”足球比赛,在第二个字典中有“现场”足球比赛。
我想将它们相互比较并打印它们(如果有)没有赛前比赛直播。
示例 1
pre = [{
"Home": "Genoa",
"Away": "Inter",
"Match Full": "Genoa v Inter",
"Start Data": "19 Lug",
"Start Time": "21:30"
},
{
"Home": "Parma",
"Away": "Fiorentina",
"Match Full": "Parma v Fiorentina",
"Start Data": "17 Ago",
"Start Time": "18:30"
}]
live = [{
"Home": "Dagon Star United FC",
"Away": "Ispe FC",
"Match Full": "Dagon Star United FC v Ispe FC"
},
{
"Home": "Genoa",
"Away": "Inter",
"Match Full": "Genoa v Inter"
}]
check = [[x for x in pre if x['Match Full'] != i['Match Full']] for i in live]
print(check)
我没有收到所需的结果,我也尝试了以下代码,但没有收到正确的结果。
示例 2
pre = [{
"Home": "Genoa",
"Away": "Inter",
"Match Full": "Genoa v Inter",
"Start Data": "19 Lug",
"Start Time": "21:30"
},
{
"Home": "Parma",
"Away": "Fiorentina",
"Match Full": "Parma v Fiorentina",
"Start Data": "17 Ago",
"Start Time": "18:30"
}]
live = [{
"Home": "Dagon Star United FC",
"Away": "Ispe FC",
"Match Full": "Dagon Star United FC v Ispe FC"
},
{
"Home": "Genoa",
"Away": "Inter",
"Match Full": "Genoa v Inter"
}]
for x in pre:
for i in live:
if x['Match Full'] != i['Match Full']:
print(x['Match Full'])
我想要什么get 只是“实时”字典中缺少的赛前,在这种情况下,它应该只打印“Parma v Fiorentina”,因为它在字典中丢失
任何解决方案将不胜感激,提前谢谢。
你可以使用一种更有效的方法,使用基于“Match Full”值的集合来找到实时字典中缺少的比赛前比赛。
pre = [{
"Home": "Genoa",
"Away": "Inter",
"Match Full": "Genoa v Inter",
"Start Data": "19 Lug",
"Start Time": "21:30"
},
{
"Home": "Parma",
"Away": "Fiorentina",
"Match Full": "Parma v Fiorentina",
"Start Data": "17 Ago",
"Start Time": "18:30"
}]
live = [{
"Home": "Dagon Star United FC",
"Away": "Ispe FC",
"Match Full": "Dagon Star United FC v Ispe FC"
},
{
"Home": "Genoa",
"Away": "Inter",
"Match Full": "Genoa v Inter"
}]
# 从实时比赛中创建一个比赛名称集合
live_matches = {match['Match Full'] for match in live}
# 查找不在实时比赛中的比赛前比赛
missing_matches = [match for match in pre if match['Match Full'] not in live_matches]
# 打印缺失的比赛
for match in missing_matches:
print(match['Match Full'])
此代码首先通过从“live”字典中提取“Match Full”值来创建实时比赛的集合。然后,它遍历比赛前比赛,并检查每场比赛的“Match Full”值是否在实时比赛集合中。如果不在,则表示该比赛是缺失的,并将其打印出来。
此方法比嵌套循环更有效,尤其是对于大型数据集,因为检查集合中值的成员资格比在列表中搜索值要快得多。
标签:python,dictionary,comparison From: 78775988