【发布时间】:2015-11-25 06:38:43
【问题描述】:
我有一个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..
这东西有两个问题:
如果列表为空,或者 dict 查找失败,程序将失败,因为 randrange 有 (0,0) 作为参数,这会导致错误
很多时候,两个 randrange() 调用都会生成相同的数字,尤其是当列表很小时。这将返回一个空列表。例如 a_list[5:5]
那么,处理上述情况的随机子列表的最佳方法是什么?另外,我不在乎订购。什么都行。每次for循环开始时,我只想要一个完全随机的0,1 ...直到len(a_list)元素的子列表。
如果列表可以在其他可以包含类似元素的数据结构中进行更改,那也适用于我。
【问题讨论】:
-
明确一点:您想要从原始列表中随机选择的连续元素序列?
-
在你的随机子列表中,会不会有重复的元素?你的随机子列表应该是多长?