Python 如何获取用户输入列表,通过随机计数器运行它,然后输出结果
抱歉,我对编码还比较陌生,这可能是一个相当简单的问题。我想做一个快速的程序,允许用户输入项目,比如说从列表中随机挑选一个项目的1000个排列,然后按降序输出每个项目被挑选的次数。我有一些代码,使用预定义的列表来实现我想要的功能。但我不知道如何将其转换为使用用户输入列表。代码如下:Python 如何获取用户输入列表,通过随机计数器运行它,然后输出结果,python,python-3.x,Python,Python 3.x,抱歉,我对编码还比较陌生,这可能是一个相当简单的问题。我想做一个快速的程序,允许用户输入项目,比如说从列表中随机挑选一个项目的1000个排列,然后按降序输出每个项目被挑选的次数。我有一些代码,使用预定义的列表来实现我想要的功能。但我不知道如何将其转换为使用用户输入列表。代码如下: ThingsToDo = ['Apples', 'Oranges', 'Bananas', 'Watermelons', 'Grapes'] results = random.choices(ThingsToDo,
ThingsToDo = ['Apples', 'Oranges', 'Bananas', 'Watermelons', 'Grapes']
results = random.choices(ThingsToDo, k=1000)
countApples = results.count('Apples')
countOranges = results.count('Oranges')
countBananas = results.count('Bananas')
countWatermelons = results.count('Watermelons')
countGrapes = results.count('Grapes')
print('Apples:', countApples)
print('Oranges:', countOranges)
print('Bananas:', countBananas)
print('Watermelons:', countWatermelons)
print('Grapes:', countGrapes)
现在,虽然这在某种程度上实现了我想要的,但我希望用户在列表中输入未定义数量的项。然后运行用户定义的次数并输出结果。。。。希望这是有道理的。我知道如何要求用户在此处输入列表:
print('Please enter values for the list, one value per line')
print('Enter "done" (without the quotes) to end the list')
list_of_inputs = []
while True:
s = input('value: ')
if s == 'done':
break
list_of_inputs.append(s)
print('Here is the list:')
print(list_of_inputs)
我只是不知道如何获取用户列表并运行上述代码。。。当然希望这是有意义的。您不应该使用一堆不相关的变量,而应该使用一个
dict
。在这种情况下,您甚至可以使用一个dict
子类来为您进行计数:
import random
from collections import Counter
list_of_inputs = ['Apples', 'Oranges', 'Bananas', 'Watermelons', 'Grapes']
results = random.choices(list_of_inputs, k=1000)
counts = Counter(results)
# Counter({'Watermelons': 218, 'Bananas': 211, 'Oranges': 211, 'Grapes': 187, 'Apples': 173})
for item, count in counts.items():
print(f'{item}: {count}')
样本输出:
Bananas: 210
Oranges: 201
Grapes: 198
Apples: 208
Watermelons: 183
或者,如果您希望通过减少计数对它们进行排序,请使用计数器的最常用的方法:
for item, count in counts.most_common():
print(f'{item}: {count}')
或通过迭代计数的排序键,按项目名称排序:
for item in sorted(counts):
print(f'{item}: {counts[item]}')