Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取用户输入列表,通过随机计数器运行它,然后输出结果_Python_Python 3.x - Fatal编程技术网

Python 如何获取用户输入列表,通过随机计数器运行它,然后输出结果

Python 如何获取用户输入列表,通过随机计数器运行它,然后输出结果,python,python-3.x,Python,Python 3.x,抱歉,我对编码还比较陌生,这可能是一个相当简单的问题。我想做一个快速的程序,允许用户输入项目,比如说从列表中随机挑选一个项目的1000个排列,然后按降序输出每个项目被挑选的次数。我有一些代码,使用预定义的列表来实现我想要的功能。但我不知道如何将其转换为使用用户输入列表。代码如下: ThingsToDo = ['Apples', 'Oranges', 'Bananas', 'Watermelons', 'Grapes'] results = random.choices(ThingsToDo,

抱歉,我对编码还比较陌生,这可能是一个相当简单的问题。我想做一个快速的程序,允许用户输入项目,比如说从列表中随机挑选一个项目的1000个排列,然后按降序输出每个项目被挑选的次数。我有一些代码,使用预定义的列表来实现我想要的功能。但我不知道如何将其转换为使用用户输入列表。代码如下:

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]}')