relaciones programacion potencia lista interseccion entre disjuntos diferencia conjuntos conjunto python set append

python - potencia - interseccion programacion



Agregar valores a un conjunto en Python (6)

Definir conjunto

a = set()

Use agregar para agregar valores individuales

a.add(1) a.add(2)

Utilice la actualización para agregar valores iterables

a.update([3,4])

Revisa tu colección

a Out[*n*]: {1, 2, 3, 4}

Eso es todo, recuerde, actualice si es iterable (también conocido como lista o tupla) o agregue si no. ¡Feliz codificación!

Tengo un set como este:

keep = set(generic_drugs_mapping[drug] for drug in drug_input)

¿Cómo agrego valores [0,1,2,3,4,5,6,7,8,9,10] en este conjunto?


Esta pregunta es la primera que aparece en Google cuando se busca "Python cómo agregar elementos para configurar", por lo que vale la pena señalar explícitamente que, si desea agregar una cadena completa a un conjunto, debe agregarse .add() , no .update() .

Digamos que tienes una cadena foo_str cuyo contenido es ''this is a sentence'' , y tienes un conjunto bar_set igual a set() .

Si haces bar_set.update(foo_str) , el contenido de tu conjunto será {''t'', ''a'', '' '', ''e'', ''s'', ''n'', ''h'', ''c'', ''i''} .

Si haces bar_set.add(foo_str) , el contenido de tu conjunto será {''this is a sentence''} .


Para mí, en Python 3, funciona simplemente de esta manera:

keep = keep.union((0,1,2,3,4,5,6,7,8,9,10))

No sé si puede ser correcto ...


También puedes usar el | Operador para concatenar dos conjuntos ( unión en la teoría de conjuntos):

>>> my_set = {1} >>> my_set = my_set | {2} >>> my_set {1, 2}

O una forma más corta usando |= :

>>> my_set = {1} >>> my_set |= {2} >>> my_set {1, 2}

Nota: En versiones anteriores a Python 2.7, use set([...]) lugar de {...} .


Utilice la update esta manera:

keep.update(newvalues)


keep.update(yoursequenceofvalues)

por ejemplo, keep.update(xrange(11)) para su ejemplo específico. O, si tiene que producir los valores en un bucle por alguna otra razón,

for ...whatever...: onemorevalue = ...whatever... keep.add(onemorevalue)

Pero, por supuesto, hacerlo de forma masiva con una sola llamada .update es más rápido y práctico, cuando de otra manera es factible.