我想从以下列表中获得20个随机结果:
coordinaten = [
[20, 140], [40, 140], [60, 140], [80, 140], [100, 140], [120, 140],
[20, 120], [40, 120], [60, 120], [80, 120], [100, 120], [120, 120],
[20, 100], [40, 100], [60, 100], [80, 100], [100, 100], [120, 100],
[20, 80], [40, 80], [60, 80], [80, 80], [100, 80], [120, 80],
[20, 60], [40, 60], [60, 60], [80, 60], [100, 60], [120, 60],
[20, 40], [40, 40], [60, 40], [80, 40], [100, 40], [120, 40]
]
我尝试了random.shuffle,但它返回一个空列表。
我希望有人可以帮助我。
编辑:让它工作,不知道你可以给random.shuffle()一个参数。谢谢你的回复。
答案 0 :(得分:3)
您可以使用random.choice()
20次,但这不会是"唯一的" - 元素可能会重复,因为每次都会随机选择一个元素:
[random.choice(coordinaten) for _ in xrange(20)]
如果您想要随机排列20个唯一值,请使用random.sample()
:
random.sample(coordinaten, 20)
random.sample(population, k)¶ Return a k length list of unique elements chosen from the population sequence. Used for random sampling without replacement.
2.3版中的新功能。
见这里:
In [14]: print random.sample(coordinaten, 20)
[[80, 60], [40, 100], [80, 100], [60, 80], [60, 100], [40, 60], [40, 80], [80, 120], [120, 140], [120, 100], [100, 80], [40, 120], [80, 140], [100, 140], [20, 80], [120, 80], [100, 100], [20, 40], [120, 120], [100, 120]]
In [15]: print [random.choice(coordinaten) for _ in xrange(20)]
[[80, 80], [40, 140], [80, 140], [60, 60], [120, 100], [20, 120], [100, 80], [120, 100], [20, 60], [100, 120], [100, 40], [80, 80], [100, 80], [80, 120], [20, 40], [100, 80], [60, 80], [80, 140], [40, 40], [120, 40]]
答案 1 :(得分:1)
我认为您可能正在寻找random.sample
库中的random
。可以找到文档https://wiki.eclipse.org/Eclipse.ini。
您可以这样使用:
import random
my_new_list = random.sample(coordinates, 20)
答案 2 :(得分:1)
请按照您对问题的评论意见。 无论如何,一种方法是使用shuffle。 Shuffle就是这样做的,这就是为什么你得不到任何回报。
from random import shuffle
shuffle(coordinaten)
result = coordinaten[:20]
答案 3 :(得分:1)
random.shuffle
直接对输入参数进行随机播放并且不返回任何内容。
使用random.shuffle
:
import random
random.shuffle(coordinaten)[:20]
但它改变了您的源列表。我的意见是:它不好。
您可以使用random.sample
import random
random.sample(coordinaten, 20)
答案 4 :(得分:-2)
尝试以下方法:
coordinaten = [[20, 140], [40, 140], [60, 140], [80, 140], [100, 140], [120, 140],
[20, 120], [40, 120], [60, 120], [80, 120], [100, 120], [120, 120],
[20, 100], [40, 100], [60, 100], [80, 100], [100, 100], [120, 100],
[20, 80], [40, 80], [60, 80], [80, 80], [100, 80], [120, 80],
[20, 60], [40, 60], [60, 60], [80, 60], [100, 60], [120, 60],
[20, 40], [40, 40], [60, 40], [80, 40], [100, 40], [120, 40]]
import random
print(random.sample(coordinaten, 20))