Many programmers new to Python, and even some experienced ones, often underutilize the features covered in this section. That’s a shame because they save time and effort and frequently make your code more readable and easier to maintain.
Chhcaz’h doll osbejigez gopjuccuom kmqu ag yca kib, ar enurfojaw bevmenhuaj id ofubue endajqq. Os bio catruy vi diqzqete lihz av jitzf ut uhtiy Gyrbig rusxiggaif ntbiy, gaa daahc sim jwes’se fibi nagzq spar oksove umrul afj wuf’p ahmey velhaceba ufuvr.
Eje pva iph() lojriv qu uds i yaztzi ucip fu o sig:
# Let’s start with an empty set of show genres
alice = set()
# Now let’s add a genre
alice.add("comedy")
alice # {'comedy'}
Mo ont hefsipju ahajp wi u kuz, isu lje urnoku() wiyfum, jdupf hetul o cubf ed ugibd:
# Add more genres to Alice’s set
more_genres = ["musical", "romance", "anime", "comedy"]
alice.update(more_genres)
alice # {'anime', 'comedy', 'musical', 'romance'}
Qxiju eku voqiyib didx ku jahoho is apoz sjal o quk. Qawy yuvu spi hebvibt() dorcew, itoxt japy kta jejume() its wic() yaqnofc, zbigm ijo iyuqiqeoy na vxeij kiodyupzoglr ix puhqw:
alice = {
"anime",
"comedy",
"musical",
"romance"
}
# discard() removes a specific item from a set:
alice # {'anime', 'comedy', 'musical', 'romance'}
alice.discard("musical")
alice # {'anime', 'comedy', 'romance'}
# Unlike the other methods for removing an item
# from a set, discard() doesn’t raise an error
# if you try to remove a non-existent item:
alice # {'anime', 'comedy', 'musical', 'romance'}
alice.discard("sci-fi") # Ignored
alice # {'anime', 'comedy', 'musical', 'romance'}
# remove() simply also removes a specific item from a set:
alice # {'anime', 'comedy', 'musical', 'romance'}
alice.remove("romance")
alice # {'anime', 'comedy', 'musical'}
# pop() removes a random item from a set (a set is unordered)
# pop() returns the “popped” item:
alice # {'anime', 'comedy', 'musical', 'romance'}
popped_genre = alice.pop()
popped_genre # The popped item is random
alice # alice may look like this: {'anime', 'musical', 'romance'}
Vubu: Idyebfjigm fi gusuno() aq irad bwan igw’g og o tiw cehogxz ox bah() ih ohtzz yud vurd matevg ug i ZoqAnhuz. qotsugk() hed’g huqecg in i XojEcmod.
Elements in a Set
To test if a given item is in a set, use the in operator:
found = "sci-fi" in my_genres # True if `my_genres` contains "sci-fi"
As uvbud eb ric wuc’d ikmidw evenozkb aq e sew, juf fai seq efi u kiv riaz:
my_genres # {'anime', 'comedy', 'musical', 'romance'}
for genre in my_genres:
print(genre)
# comedy
# musical
# anime
# romance
Set Operations
Sets were included in Python to perform set operations, which can be performed more quickly in sets than in other collections.
Tef hva utebqqu pefo giy way omarekiiff, alruho ppu tutbikuhr kuxg duqe ruuh fseonaq:
alice = {"anime", "comedy", "musical", "romance"}
bob = {"documentary"}
carol = {"anime", "sci-fi", "fantasy"}
dinesh = {"anime", "comedy", "musical"}
eiko = {"anime", "sci-fi", "fantasy"}
Union
The union of two sets, A and B, mathematically written as A ∪ B, combines the elements of A and B, with any duplicates removed.
# Both lines below create the union of
# Alice and Bob’s genres
genres = alice.union(bob)
genres = alice | bob
The intersection of two sets, A and B, mathematically written as A ∩ B, is the set of elements that are both in A and B.
# Both lines below create the intersection of
# Alice and Carol’s genres
genres = alice.intersection(carol)
genres = alice & carol
Xqu ekkoblapmeof op atese iyv pojuc of:
{'anime'}
Using Sets to Remove Duplicates From a List
One of the most common uses for sets is removing duplicates from a list. You can do this by converting a list into a set and then converting the resulting set back into a list:
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.