python - 从 Python 列表中提取随机子列表

标签 python random sublist

我有一个 python 字典如下:

{'APPLE_PROVIDERS' : ["some", "provider","can","be", "null"],
  ....
}

我想要做的是从一个键的​​列表(这是一个值)中获取一个随机子列表。不只是一个元素,而是一个完全随机的子列表。这是我尝试过的:

a_list = a_dict.get('APPLE_PROVIDERS', "")
for item in a_list[randrange(0,len(a_list)) : randrange(0,len(a_list))]:
  ...do something.. 

这个东西有两个问题:

  1. 如果列表为空,或者字典查找失败,则程序失败,因为 randrange 将 (0,0) 作为参数,这会导致错误

  2. 很多时候,两次 randrange() 调用都会生成相同的数字,尤其是当列表很小的时候。这将返回一个空列表。例如a_list[5:5]

那么,在处理上述情况的情况下,获得随机子列表的最佳方法是什么?另外,我不关心顺序。什么都行。每次 for 循环开始时,我只想要一个完全随机的 0,1... 直到 len(a_list) 元素的子列表。

如果列表可以在其他可以包含类似元素的数据结构中更改,那对我也适用。

最佳答案

对其进行采样。

>>> random.sample(["some", "provider", "can", "be", "null"], 3)
['some', 'can', 'provider']
>>> random.sample(["some", "provider", "can", "be", "null"], 3)
['can', 'null', 'provider']
>>> random.sample(["some", "provider", "can", "be", "null"], 3)
['null', 'some', 'provider']

关于python - 从 Python 列表中提取随机子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33909968/

相关文章:

java - 通过列表迭代器在子列表中添加元素

python - 为什么应该使用 Homebrew 来安装 Python?

android - 随机 TextView 位置

R - 绘制随机有序样本

Python:如果包含/不包含顺序相同,则从列表中删除子列表

R:循环列表列表以检索包含命中的子列表的标题

python - 从非连续视频帧创建全景图

python - 如何将数字形式的 python 列表转换为字母?

python - 我怎么知道电子邮件是否使用 Django/Python 正确发送?

ios - 在ios中生成一个随机的字母数字字符串