我有一个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..
这个东西有两个问题:
如果列表为空,或者字典查找失败,程序会失败,因为randrange的参数为(0,0),这导致出现错误。
当列表较小时,randrange()调用很多次会生成相同的数字,这将返回一个空列表。例如a_list[5:5]。
那么最好的方法是什么,以处理上述情况?此外,我不关心顺序,任何方式都可以。每次for循环开始时,我只想要一个完全随机的子列表,包含0、1...直到len(a_list)个元素。
如果可以将列表更改为其他可以容纳相似元素的数据结构,那对我也可以。