从列表中随机选择Python

时间:2018-08-26 06:08:21

标签: python-3.x

我如何选择从下面列出的列表中选择随机选择。

colours = ['red', 'blue', 'green', 'yellow', 'black', 'purple', 'Brown', 'Orange', 'violet', 'gray']
  1. 现在从10个项目列表中选择1个项目。
  2. 打印

  3. 从其余9个项目中选择2个项目。

  4. 打印

  5. 最终从剩余的7个项目中选择3个项目。

  6. 打印
  7. 所以最终结果将是这样

棕色

绿色和紫色

红色黑色和灰色

3 个答案:

答案 0 :(得分:1)

一种简单的方法就是从列表中删除所选的值。如果使用set,则稍微简单一些:

In []:
colours = {'red', 'blue', 'green', 'yellow', 'black', 'purple',
           'Brown', 'Orange', 'violet', 'gray'}
for n in [1, 2, 3]:
    cs = random.sample(colours, k=n)
    colours -= set(cs)
    print(cs)

Out[]:
['Brown']
['Orange', 'red']
['purple', 'gray', 'blue']

答案 1 :(得分:0)

我使用的方法是将输入向量改组为所需数量的选定元素。

import random

colours = ['red', 'blue', 'green', 'yellow', 'black', 'purple', 'Brown', 'Orange', 'violet', 'gray']
random.shuffle(colours)

for i in range(1, 4):
  n, colours = colours[0:i], colours[i:]
  print(n)

答案 2 :(得分:0)

colors = ['red', 'blue', 'green', 'yellow', 'black', 'purple','Brown', 'Orange', 'violet', 'gray']
for n in range(1,4):
    select=np.random.choice(colors,n)
    print(select)
    colors=list(set(colors).difference(set(select)))

output:-['Brown']
        ['red' 'violet']
        ['yellow' 'Orange' 'black']