列表(数组)中某个范围内的随机样本| Python 3.x

时间:2017-10-18 23:50:59

标签: python python-3.x list random range

我有一个包含许多字符的列表,如下所示:

list = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
        'r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9',
        '0'," ",'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
        'Q','R','S','T','U','V','W','X','Y','Z']

我希望程序在列表中的前26个(小写字母)项目中随机选取8个字符。我不会删除或分离此数组中的其他项目,因为我稍后需要它们来做类似的事情。

我对编程有些新意,我更喜欢一个简单的解决方案,虽然我并没有阻止你把更复杂的东西放在那里让别人看。

提前致谢!

2 个答案:

答案 0 :(得分:4)

您可以对数组进行切片,然后对其进行采样。

random.sample(seq[:26], k=8)

答案 1 :(得分:1)

渴望你需要random module

import random

然后我会使用这个解决方案:

your_list = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
        'r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9',
        '0'," ",'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
        'Q','R','S','T','U','V','W','X','Y','Z']

first_26_characters = your_list[0:26] # get items from 0 to 26 in new list
random.shuffle(first_26_characters) # shuffle new list
random_8_characters = first_26_characters[0:8] # get first 8 characters because after shuffle they are random

我希望这有帮助!