4.1 Qaydaya əsasən alt çoxluğun əldə edilməsi
Alt çoxluq — bu, bütün elementləri başqa, daha böyük çoxluğun daxilində olan çoxluqdur. Python-da alt çoxluqlarla işləmək üçün bir neçə daxili funksiya və operator var. Aşağıda alt çoxluqları necə əldə edəcəyini, bir çoxluğun digərinin alt çoxluğu olub-olmadığını necə yoxlamağı və bu bilikləri müxtəlif ssenarilərdə necə tətbiq etməyi izah edəcəm.
for
dövründən istifadə
Şərtə uyğun elementləri əlavə etmək üçün boş çoxluq yarada və bu çoxluğu for
dövrü ilə doldura bilərsiniz.
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set()
for x in my_set:
if x % 2 == 0:
even_set.add(x)
print(even_set) # Nəticə: {2, 4, 6, 8, 10}
Bu alt çoxluq yaratmaq üçün ən sadə və açıq üsuldur. Amma daha bir neçə digər və daha sıx üsullar da var.
filter()
funksiyasından istifadə
filter()
funksiyası hər bir element üzərində bir funksiya tətbiq edir və yalnız həmin funksiya True qaytaran elementləri geri verir. Nəticəni yenidən çoxluğa çevirmək lazımdır.
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set(filter(lambda x: x % 2 == 0, my_set))
print(even_set) # Nəticə: {2, 4, 6, 8, 10}
filter()
funksiyasının içində lambda ifadəsindən istifadə edilir – bu, qısa funksiya və ya filtrasiya qaydasını təyin etmək üçün bir üsuldur. Lambda ifadələri haqqında bir neçə mühazirədən sonra danışacağam.
4.2 Çoxluq generatorlarının istifadəsi
List Comprehension
-i xatırlayırsınız? Kvadrat mötərizələrdə siyahı və onun elementlərini sürətli bir üsulla yaratmağa imkan verən sintaksis aləti? Bu alət belə görünürdü:
[ifadə for dəyişən in ardıcıllıq]
Burada:
-
dəyişən
— hər hansı bir dəyişənin identifikatoru, -
ardıcıllıq
— həmin dəyişənin aldığı dəyərlərin ardıcıllığı (bu siyahı, string və yarange
funksiyası ilə əldə olunmuş obyekt ola bilər), -
ifadə
— adətən generatorun daxilində istifadə olunan dəyişəndən asılı olan bəzi ifadədir, hansı ki siyahının elementlərini dolduracaq.
Çoxluqlar üçün də oxşar funksiya mövcuddur, lakin burada dırnaqlardan fərqli olaraq figurlu mötərizələrdən istifadə olunur:
{ifadə for dəyişən in ardıcıllıq}
Çoxluq generatorları artıq mövcud olan çoxluqlar əsasında yeni çoxluqlar yaratmağa imkan verir, həmçinin filtrasiya şərtləri tətbiq etməyə də yarayır.
Bu üsulla yalnız cüt elementləri çoxluqdan seçmək olar:
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = {x for x in my_set if x % 2 == 0}
print(even_set) # Çıxış: {2, 4, 6, 8, 10}
Və yalnız stringləri belə seçə bilərsiniz:
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, "alma", "banan"}
even_set = {x for x in my_set if type(x) == str}
print(even_set) # Çıxış: {"alma", "banan"}
4.3 Elementin mövcudluğunu yoxlamaq
Çoxluqlarla icra edə biləcəyiniz əsas əməliyyatlardan biri də çoxluqda elementin mövcudluğunu yoxlamaq-dır. Python-da bunu etmək üçün bir neçə üsul mövcuddur. Gəlin, elementin çoxluqda olduğunu yoxlamağın müxtəlif metodlarını nəzərdən keçirək.
in
operatorundan istifadə
Çoxluqda elementin mövcudluğunu yoxlamağın ən geniş istifadə olunan və ən rahat üsulu in
operatorundan istifadə etməkdir. Bu üsul elementin çoxluqda olduğunu yoxladıqda True
, əks təqdirdə False
qaytarır.
my_set = {1, 2, 3, 4, 5}
print(3 in my_set) # Çıxış: True
print(6 in my_set) # Çıxış: False
not in
operatorundan istifadə
not in
operatoru in
operatorunun əksidir və çoxluqda elementin olmadığını yoxlamaq üçün istifadə edilir. Bu, elementin çoxluqda olmadığını yoxladıqda True
, əks təqdirdə False
qaytarır.
my_set = {1, 2, 3, 4, 5}
print(6 not in my_set) # Çıxış: True
print(3 not in my_set) # Çıxış: False
Döngülərdən istifadə
Döngülərdən istifadə edərək çoxluqda elementin mövcudluğunu yoxlamaq ən effektiv üsul olmasa da, bu üsul daha mürəkkəb verilənlər strukturları ilə işlədikdə və ya əlavə əməliyyatlar yerinə yetirdikdə faydalı ola bilər.
my_set = {1, 2, 3, 4, 5}
element = 3
found = False
for item in my_set:
if item == element:
found = True
break
print(found) # Çıxış: True
4.4 Dəstlərin iç-içəliyi yoxlanış
Python operator <=
və issubset()
metodu təqdim edir ki, bir dəstin digərinin alt dəsti olub-olmadığını yoxlaya biləsiniz.
<=
operatorunu istifadə etmək
<=
operatoru asanlıqla yoxlamağa imkan verir ki, bir dəst digərinin alt dəsti olub-olmadığını.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
print(set_a <= set_b) # Çıxış: True
print(set_b <= set_a) # Çıxış: False
issubset()
metodundan istifadə
issubset()
metodu <=
operatorunun eyni funksiyasını yerinə yetirir və bir dəstin bütün elementləri digərində varsa True
qaytarır.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
print(set_a.issubset(set_b)) # Çıxış: True
print(set_b.issubset(set_a)) # Çıxış: False
Üst dəstə yoxlanış
Alt dəstlərə bənzər şəkildə, bir dəstin digərinin üst dəsti olub olmadığını yoxlaya bilərsiniz >=
operatoru və issuperset()
metodu vasitəsilə.
>=
operatorundan istifadə
set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
print(set_a >= set_b) # Çıxış: True
print(set_b >= set_a) # Çıxış: False
issuperset()
metodundan istifadə
set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
print(set_a.issuperset(set_b)) # Çıxış: True
print(set_b.issuperset(set_a)) # Çıxış: False
GO TO FULL VERSION