如何找出哪个变量具有最大价值

时间:2014-04-18 13:07:15

标签: python

if A > B and C and D:
   print("A wins")
if B>A and C and D:
   print("B wins")

如何查看哪个变量包含组中最大的整数?决定谁赢了?

2 个答案:

答案 0 :(得分:5)

你可以测试每一个:

if A > B and A > C and A > D:

或者您可以测试其他三个最大值

if A > max(B, C, D):

但看起来你真正想要的是找出哪个玩家具有最大价值。您应该将您的球员得分存储在字典中:

players = {'A': A, 'B': B, 'C': C, 'D': D}

现在更容易找出谁赢了:

winner = max(players, key=players.get)
print(winner, 'wins')

返回players的值,其值为最大值。您可以在整个代码中使用players,而不是在任何地方都使用单独的变量。

要明确说明:A > B and C and D将无法运作;布尔逻辑不能像那样工作;每个表达式都是单独测试的,因此您必须为A > B为真, C必须为true D必须为真正。如果Python中的值不是空容器而不是数字0,则认为它们是真的;如果这些都是整数分数,CD如果不等于0则为真。

答案 1 :(得分:1)

您可以使用max()

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)

zipmapvar_names列表转换为('A', A)等元组列表,然后获取具有最高第二项的元组。从该元组中获取变量名称。