Extraindo uma sub-lista aleatória de uma lista em Python
Eu tenho um dicionário python da seguinte maneira:
{'APPLE_PROVIDERS' : ["some", "provider","can","be", "null"],
....
}
O que eu quero fazer é obter uma sublist aleatória da lista (que é um valor) de uma chave. Não apenas um elemento, mas uma sublist totalmente aleatória. Aqui está o que eu tentei:
a_list = a_dict.get('APPLE_PROVIDERS', "")
for item in a_list[randrange(0,len(a_list)) : randrange(0,len(a_list))]:
...do something..
Essa coisa tem dois problemas:
Se a lista estiver vazia ou se a pesquisa de dict falhar, o programa falhará, pois randrange possui (0,0) como argumentos, o que resulta em um erro
Muitas vezes, as chamadas randrange () geram o mesmo número, especialmente quando a lista é pequena. Isso retorna uma lista vazia. Por exemplo a_list [5: 5]
Então, qual é a melhor maneira de obter uma sublist aleatória com os casos acima tratados? Além disso, não me importo com o pedido. Tudo funciona. Eu só quero uma sublist totalmente aleatória de 0,1 ... até len (a_list) elementos cada vez que o loop for for iniciado.
Se a lista puder ser alterada em alguma outra estrutura de dados que possa conter elementos semelhantes, isso também funcionará para mim.