如何从具有相同最高值的阵列中打印输入值的最高值?在Python 3中

时间:2018-03-18 10:35:41

标签: python

我希望这个问题有道理,因为我不太清楚如何提出这个问题。

但是我的程序 - 在python中 - 要求用户在阵列中输入这些冰淇淋口味的1-10分。显示他们的分数,然后将他们的最高分打印为他们喜欢的风味。其中索引的数量和打印数组的味道。但是,假设用户将Mint Choc Chip和Strawberry都设置为10.该程序将仅打印阵列中的项目,即使草莓也是最高分,这是min choc芯片。有谁知道一种方法可以使程序显示所有最高得分的口味?请记住,我是Python的新手,所以如果你的答案看起来很明显,那就不适合我了。所以请善待,任何帮助或建议将不胜感激!

我已尝试添加此内容:如果高> 1:   打印(“\ n你最喜欢的冰淇淋味道是”,味道[高],味道[高])

但是只打印两次出现在阵列中的相同味道,所以它会打印出来:你最喜欢的冰淇淋味道是薄荷巧克力薄荷巧克力芯片。我知道这没有意义,因为如果最高分是三种口味,那么它只能打印两种(相同的)。我也试图寻找其他功能,如导入等。但我找不到一个有帮助。这对于该计划来说不是必需的,但会使其更好,更现实。谢谢!

代码:

import numpy as np

flavours = ["Vanilla", "Chocolate", "Mint Choc Chip", "Rosewater", "Strawberry", "Mango", "Frutti Tutti", "Fudge Brownie", "Bubblegum", "Stracciatella"]

Ice_Cream= [0]*10

print("Please input your score on these flavours of ice cream. With 1 being the lowest and 10 the highest.\n")

for i in range(0,10):
    print(flavours[i]+":")
    Ice_Cream[i] = int(input())

print("\nResults:\n")

for i in range(0,10):
      print(flavours[i]+":",Ice_Cream[i])

high = np.argmax(Ice_Cream)

if high > 1:
  print ("\nYour favourite flavour of ice cream is", flavours[high], flavours[high])

else:

  print ("\nYour favourite flavour of ice cream is", flavours[high])

2 个答案:

答案 0 :(得分:1)

Numpy.argmax返回最大值为https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.argmax.html的索引的数组

你应该遍历它

for i in np.nditer(high):
    print ("\nYour favourite flavour of ice cream is", flavours[i])

答案 1 :(得分:0)

high=[i for i, x in enumerate(Ice_Cream) if x == max(Ice_Cream)]
for i in high:
  print ("Your favourite flavour of ice cream is", flavours[i])

变量high存储冰淇淋最大值的所有指数