Python pick 20 random results from list
本问题已经有最佳答案,请猛点这里访问。
我想从以下列表中获得20个随机结果:
1 2 3 4 5 6 7 8 | 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()提供参数。谢谢你的回复。
您可以使用
1 | [random.choice(coordinaten) for _ in xrange(20)] |
如果需要随机排列20个唯一值,请使用
1 | random.sample(coordinaten, 20) |
1
2
3
4 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版新增。
请参见这里:
1 2 3 4 5 | 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 2 | import random random.shuffle(coordinaten)[:20] |
但它会更改源列表。我的意见:不好。
您可以使用
1 2 | import random random.sample(coordinaten, 20) |
请按照评论中的建议回答您的问题。总之,一种方法是使用随机播放。洗牌就是这样,所以你得不到任何回报。
1 2 3 | from random import shuffle shuffle(coordinaten) result = coordinaten[:20] |
我想你可能在
您可以这样使用:
1 2 | import random my_new_list = random.sample(coordinates, 20) |
尝试以下配方:
1 2 3 4 5 6 7 8 9 10 | 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)) |