2010-02-27 3 views
5

Me estoy convirtiendo una lista en un conjunto en Python, así:¿Convertir una lista en un conjunto, luego volver, causa problemas en Python?

request.session['vote_set'] = set(request.session['vote_set']) 

Así que puede hacer fácilmente una búsqueda if x in set y eliminar duplicados. Luego, cuando termine, lo reconvito:

request.session['vote_set'] = list(request.session['vote_set']) 

¿Hay una forma mejor de hacerlo? ¿Estoy potencialmente haciendo algo peligroso (o estúpido)?

Respuesta

5

Perderá duplicados si realmente los quiere. Si esto es en realidad una lista de "votos" como su nombre sugiere, que le '' pierde algunos :)

por qué no sólo:

if x in set(request.session['vote_set']) 

si está preocupado.

Aunque me pregunto si eso sería más lento que simplemente:

if x in request.session['vote_set'] 

y ordenando, como han mencionado otros, potencialmente (lo más probable) se perderán.

+0

Convertir a un conjunto (lo que implica atravesar toda la lista una vez) simplemente probar la membresía una vez será más lento que probar la membresía en la lista (lo que implica atravesar la lista hasta encontrar una coincidencia). Si el conjunto es grande y puede usarlo más de una vez, en algún momento será más rápido; sin embargo, ese no es el caso aquí. –

1

Perderá el pedido, si eso es importante para usted.

Cuestiones relacionadas