CodeGym /Kurslar /Python SELF AZ /Siyahıların yaradılması

Siyahıların yaradılması

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

7.1 Çarpma

Python-da elementlərin sayını artırmaq üçün istifadə olunan rahat bir sintaksis var. Bunun üçün sadə bir çarpma operatorundan istifadə edilir.

Sətirlərin yaradılması

Bunu sətirlərə tətbiq edə bilərsiniz:


print("Mama" * 5)  # MamaMamaMamaMamaMama çap edəcək
        

Yaxud, məsələn, tez bir bölücü sətir çap edə bilərsiniz:


print("-" * 40)  # ---------------------------------------- çap edəcək
        

Siyahıların yaradılması

Həmçinin siyahıdakı elementlərin sayını artırmaq üçün istifadə edilə bilər:


print(["apple"] * 5)  # ['apple', 'apple', 'apple', 'apple', 'apple'] çap edəcək
        

Bu operator daha praktik tətbiq imkanına malikdir. Məsələn, 10 elementdən ibarət və sıfırlarla dolu siyahı yaratmaq istəyirsiniz:


alist = [0] * 10
print(alist)  # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] çap edəcək 
        

Hətta ikiölçülü massiv də yarada bilərsiniz. Məsələn, 20x10 ölçülü, sıfırlarla dolu bir massiv yaratmaq istəyirsiniz. Bu da çox asandır:


alist = [[0] * 10] * 20 
print(alist)  # [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ...] çap edəcək
        

Çox rahatdır, deyilmi?

7.2 List Comprehension

Python-da çox faydalı bir alət var, adı «List Comprehension» (siyahı daxil etmələri, siyahı generasiyası). Bu alət rahat və kompakt yolla siyahılar yaratmağa imkan verir. Sintaksis baxımından bu vasitə yeni siyahılar yaratmağa kömək edir: iterasiya olunan obyektin hər bir elementinə ifadə tətbiq edərək bir neçə sətrdə kod yazmaq əvəzinə, bunu bir sətrlik kodda etmək mümkündür.

Sözlə izah etməkdən çox, göstərmək daha asandır. Bu sintaksis aləti belə görünür:


[ifadə for dəyişən in ardıcıl]

Harada ki:

  • dəyişən — hər hansı bir dəyişənin adına işarə edir,
  • ardıcıl — dəyişənin qəbul etdiyi dəyərlərin ardıcıllığıdır (bu, siyahı, sətir və ya range funksiyası vasitəsilə yaradılmış obyekt ola bilər),
  • ifadə — adətən generatorda istifadə olunan dəyişəndən asılı ifadədir və bu ifadə siyahının elementlərini doldurur.

Vacib! Bütün ifadə kvadrat mötərizələr içində olmalıdır.

Aşağıda generasiya nümunələri verilmişdir:

n sıfırdan ibarət siyahı yaratmaq üçün generatordan istifadə edə bilərik:


alist = [0 for i in range(100)]
        

Tam ədədlərin kvadratları ilə doldurulmuş siyahı yaratmaq üçün belə etmək olar:


n = 5
alist = [i ** 2 for i in range(n)]            
        

1-dən n-ə qədər tam ədədlərlə doldurulmuş siyahı yaratmaq üçün:


n = 10
alist = [i + 1 for i in range(n)]
        

Random modulunun randrange() funksiyasını istifadə edərək, 1-dən 9-a qədər təsadüfi ədədlərlə doldurulmuş siyahı belə yaradıla bilər:


from random import randrange

n = 10
alist = [randrange(1, 10) for i in range(n)]
        

7.3 List Comprehension ilə Dövr

List Comprehension yalnız siyahı yaratmaq üçün istifadə olunmur. Əslində, bu sadəcə for dövrünün qısa yazılış formasıdır.

Məsələn, bunun vasitəsilə sadəcə siyahıdan bəzi dəyərləri ekrana çıxarmaq olar:


alist = ["alma", "banan", "gilas"]
[print(x) for x in alist]
        

Hətta klaviaturadan dəyərlər daxil etmək mümkündür:


a = [input() for i in range(int(input()))]
        

Bu nümunədə siyahı standart girişdən daxil edilən sətirlərdən ibarət olacaq: əvvəlcə siyahının elementlərinin sayını daxil etmək lazımdır (bu dəyər range funksiyasının arqumenti kimi istifadə olunur), sonra isə təyin olunmuş sayda sətir daxil edilməlidir.

Bildiyiniz formalı kod isə belə görünəcək:


n = int(input())
a = []
for i in range(n):
    x = input()  
    a.append(x)
        

Ümumiyyətlə, List Comprehension ilə çox şey etmək olar:

Şərtlərdən istifadə mümkündür:

İfadəyə şərtlərin əlavə olunması elementlərin filtr edilməsinə imkan verir, məsələn, yalnız cüt ədədlərdən ibarət siyahı yaratmaq olar:


[x for x in range(10) if x % 2 == 0]
        

Daxili dövrələr:

Generator daxili dövrələrdən istifadə etməyə imkan verir, məsələn, çoxölçülü massivlər yaratmaq üçün:


[(x, y) for x in range(3) for y in range(3)]
        
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION