[pyar] pop de un array aleatoriamente

Juan BC jbc.develop en gmail.com
Lun Feb 21 20:44:00 ART 2011


On 21/02/11 20:39, Ramiro Morales wrote:
> 2011/2/21 Mariano Garcia Berrotarán<garcia.berrotaran en gmail.com>:
>> Hola listeros, tengo una duda existencial,
>>
>> necesito sacar un elemento de una lista aleatoriamente, mientras
>> conservo el indice ( y despues operar con los elementos subsiguientes
>> de ese elemento ).
>>
>> Por ahora lo estoy resolviendo de una forma muy fea y busco, o bien
>> aprobación por parte de ustedes o algún hint,
>>
>>
>> import random
>>
>> my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>> enum_list = [ x for x in enumerate(my_list) ]
>> random.shuffle(enum_list)
>> key, element = enum_list.pop()
>> print key, element
>> print key + 1, my_list[key + 1]
>>
>
> ¿my_list es tu lista original?. ¿Querés o no querés
> extrae el elemento cuyo índice es aleatorio de la misma?
> Porque no es lo que se ve en el código.
>

[~]
|1> import random

[~]
|2> a = [1,"2", 3.0]

[~]
|3> random.choice(a)
Out[3]: 3.0 # solo retorna un elemento pero no lo quita

[~]
|4> a
Out[4]: [1, '2', 3.0]

[~]
|5> a.pop(random.randint(0, len(a)))
Out[5]: 3.0 # quita el elemento de "a"

[~]
|6> a
Out[6]: [1, '2']



More information about the pyar mailing list