我有一个练习,需要我们比较两个元组列表
第一个列表(games
)有3个元组,每个元组对应一个游戏匹配,有2个人的名字
第二个列表(results
)也有3个元组,每个元组对应于每个匹配的结果(按games
排序)
games = [("anna", "ross"), ("manny", "maria"), ("rita", "joel")]
results = [(2, 0), (1, 3), (1, 1)]
期望的输出应该是这样的:
['anna', 'maria', 'TIE']
当匹配的两个分数相同时,输出'TIE'
我试图用zip
函数来解决这个问题,但由于某种原因,我无法在元组的所有级别上正确迭代
第一次尝试:
lst = []
i = 0
for a, b in zip(games, results):
if b[i] == max(b):
lst.append(a[i])
elif min(b) == max(b):
lst.append("TIE")
i = i + 1
print(lst)
这返回了['anna', 'rita']
,这让我觉得使用b[i]
迭代列表/元组有问题
然后我试着这样做:
lst = []
for i, c in list(zip(games, results)):
for j, k in i, c:
if k == max(c):
lst.append(i[j])
elif min(c) == max(c):
lst.append('TIE')
print(lst)
这返回了['maria', 'TIE', 'joel']
,因此我认为问题不仅仅在于迭代,还可能在于我进行比较的方式(使用max函数查找最高分数)
有人能给我一些提示或提示来帮助我解决问题吗? 我只是在花了很长时间在网上寻找类似的问题,却找不到任何真正有帮助的东西后才提出这个问题
试试这个:
第二次尝试中的一个问题是,即使出现平局,k==max()也会返回True。平局意味着元组中的两个值都是最大值,因为它们是相同的
^{} 是你在这里的朋友。尝试:
Demo
试试这个:
在这里,我将列表、游戏和结果中的各个元组传递到一个函数中,该函数比较结果并相应地返回游戏的输出
相关问题 更多 >
编程相关推荐