Python 如何找出哪个变量的值最大
如何检查并查看哪个变量包含组中最大的整数?决定谁获胜?您可以测试每个人:Python 如何找出哪个变量的值最大,python,Python,如何检查并查看哪个变量包含组中最大的整数?决定谁获胜?您可以测试每个人: if A > B and C and D: print("A wins") if B>A and C and D: print("B wins") 或者您可以只测试其他三个的最大值: if A > B and A > C and A > D: 但看起来你真正想要的是找出哪个玩家的价值最大。您应该将玩家分数存储在字典中: if A > max(B, C, D): 现在更容
if A > B and C and D:
print("A wins")
if B>A and C and D:
print("B wins")
或者您可以只测试其他三个的最大值:
if A > B and A > C and A > D:
但看起来你真正想要的是找出哪个玩家的价值最大。您应该将玩家分数存储在字典中:
if A > max(B, C, D):
现在更容易找到谁赢了:
players = {'A': A, 'B': B, 'C': C, 'D': D}
这将返回值为最大值的玩家的密钥。您可以在整个代码中使用播放器
,而不是到处都有单独的变量
明确地说:A>B和C以及D
永远不会起作用;布尔逻辑不是这样工作的;每个表达式都是单独测试的,因此您得到的A>B
必须为真,C
必须为真,D
必须为真。如果Python中的值不是空容器,而不是数字0,则认为它们为真;如果这些都是整数分,C
和D
如果不等于0
,您可以使用max()
:
当然,还有一种函数式编程方法:
if A > max(B,C,D):
print("A wins")
elif B > max(A,C,D):
print("B wins")
zip
和map
将var\u names
列表转换为一个元组列表,如('a',a)
,然后它获得第二项最高的元组。它从该元组中获取变量名。这里有基本代码。你可以修改它来测试所有的案例,因为它给了我一个错误的答案。当“D”得分最多时,它会返回“B”是赢家?@user3548949:你的分数可能是字符串吗?你能给我们一份你方价值观的样本吗'100'
作为字符串将小于'90'
,因为1
在9
之前排序,例如..功能解决方案非常有效,但存在输入错误。第一个名称
应该是var\u名称
,因此行应该更改为:max\u var=max(zip(var\u名称,(map(eval,var\u名称))),key=lambda tuple:tuple[1])[0]
注意:要获取最高var的值,而不是var名称,请将tuple:tuple[1])[0]更改为tuple:tuple[1])[1]
if A > max(B,C,D):
print("A wins")
elif B > max(A,C,D):
print("B wins")
var_names = ['A', 'B', 'C', 'D']
max_var = max(zip(names, (map(eval, var_names))), key=lambda tuple: tuple[1])[0]
print("%s wins!" % max_var)