set.difference() și symmetric_difference() în Python

Diferența (ce e în prima, dar nu în celelalte) și diferența simetrică (ce e într-una singură).

Sintaxă
a.difference(b, ...)  # a - b
a.symmetric_difference(b)  # a ^ b
a.difference_update(...) / a.symmetric_difference_update(b)

Ce face set.difference() și symmetric_difference()

difference() (a - b) dă elementele din a care nu apar în b. symmetric_difference() (a ^ b) dă elementele care apar în exact una dintre cele două mulțimi.

Variantele _update (-=, ^=) modifică mulțimea curentă în loc să creeze una nouă. difference acceptă mai multe colecții; symmetric_difference doar una.

Parametri

Parametru Descriere
other / *others Colecțiile comparate.

Ce returnează

O mulțime nouă sau None (variantele _update).

Exemple

Exemplul 1: Ce s-a schimbat între două liste

ieri = {"mere", "pere", "prune"}
azi = {"pere", "prune", "caise"}
print("scoase:", sorted(ieri - azi))
print("adăugate:", sorted(azi.difference(ieri)))
print("schimbate:", sorted(ieri ^ azi))
ieri.difference_update(["pere"])
azi.symmetric_difference_update({"caise", "kiwi"})
print(sorted(ieri), sorted(azi))

Rezultat

scoase: ['mere']
adăugate: ['caise']
schimbate: ['caise', 'mere']
['mere', 'prune'] ['kiwi', 'pere', 'prune']

Greșeli frecvente

  • Confunzi ordinea: a - b nu este același lucru cu b - a.

Comenzi înrudite