Məzmuna keç
Educora
Orta17 dəq6 / 42

Siyahılar

Çoxlu qiyməti bir siyahıda saxla: elementlərə müraciət et, əlavə et, sil, çeşidlə və siyahı üzərində dövr qur.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Siyahı yaratmaq və elementlərinə indekslə müraciət etmək
  • append, insert, remove, pop və sort metodlarından istifadə etmək
  • Siyahı üzərində dövr qurmaq, sum, min, max ilə nəticə hesablamaq

Sinifdə 25 şagird var və hər birinin qiymətini yadda saxlamaq lazımdır. 25 ayrı dəyişən — grade1, grade2, grade3…? Bu, həm yorucu, həm də əlverişsizdir. Python-da bunun əvəzinə bütün qiymətləri bir siyahıda saxlamaq olar — bir ad altında istənilən qədər element.

Siyahı yaratmaq

Tərif
Siyahı (list)

Kvadrat mötərizədə [] vergüllə ayrılmış qiymətlərin sıralı toplusu. Elementlər istənilən tipdə ola bilər, siyahının özünü isə yaradıldıqdan sonra dəyişmək olar.

Siyahıda indekslər və kəsiklər sətirlərdəki kimi işləyir: birinci element [0], sonuncu [-1], len() isə elementlərin sayını verir.

Python
fruits = ['apple', 'pomegranate', 'fig', 'grape']
print(fruits)
print(len(fruits))
print(fruits[0], fruits[-1])
print(fruits[1:3])
print('fig' in fruits)
▸ Gözlənilən nəticə
['apple', 'pomegranate', 'fig', 'grape']
4
apple grape
['pomegranate', 'fig']
True

Siyahını dəyişmək

Sətirlərdən fərqli olaraq siyahılar dəyişdirilə biləndir: elementi indekslə əvəz etmək, yeni element əlavə etmək və ya silmək olar. Bunun üçün siyahının metodları var:

MetodNə edir
append(x)x-i siyahının sonuna əlavə edir
insert(i, x)x-i i indeksli yerə qoyur
remove(x)x-ə bərabər ilk elementi silir
pop()sonuncu elementi silir və onu qaytarır
sort()siyahını artan sıra ilə çeşidləyir
count(x)x-ə neçə dəfə rast gəlindiyini sayır
Python
cart = ['bread', 'milk']
cart.append('cheese')
cart.insert(0, 'tea')
print(cart)

cart.remove('milk')
last = cart.pop()
print('Removed:', last)

cart[0] = 'green tea'
print(cart)
▸ Gözlənilən nəticə
['tea', 'bread', 'milk', 'cheese']
Removed: cheese
['green tea', 'bread']

Siyahılar və dövrlər

Siyahılar və for dövrü bir-biri üçün yaranıb. Hesablamalar üçün hazır funksiyalar da var: sum() cəmi, min() və max() ən kiçik və ən böyük elementi verir. Aysel rüb ərzində aldığı qiymətlərin ortasını hesablayır:

Python
grades = [5, 4, 5, 3, 4, 5]
average = sum(grades) / len(grades)
print('Grades:', grades)
print('Max:', max(grades), 'Min:', min(grades))
print(f'Average: {average:.2f}')
print('Number of fives:', grades.count(5))
▸ Gözlənilən nəticə
Grades: [5, 4, 5, 3, 4, 5]
Max: 5 Min: 3
Average: 4.33
Number of fives: 3

Dövr köhnə siyahıdan yeni siyahı qurmaq üçün də əlverişlidir: boş siyahı [] yaradırıq və şərtə uyğun elementləri ona append ilə əlavə edirik.

Python
scores = [45, 82, 67, 90, 38]
passed = []
for s in scores:
    if s >= 50:
        passed.append(s)
print(passed)
print(len(passed), 'of', len(scores), 'passed')
▸ Gözlənilən nəticə
[82, 67, 90]
3 of 5 passed

Çeşidləmə, split və join

sort() metodu siyahının özünü dəyişir, sorted() funksiyası isə yeni, çeşidlənmiş siyahı qaytarır və köhnəsinə toxunmur. reverse=True azalan sıra verir.

Python
numbers = [42, 7, 19, 3]
print(sorted(numbers))
print(numbers)
numbers.sort(reverse=True)
print(numbers)
▸ Gözlənilən nəticə
[3, 7, 19, 42]
[42, 7, 19, 3]
[42, 19, 7, 3]
İnteraktiv
Simulyasiya yüklənir…
Çeşidləmə necə işləyir? Python-un sort() metodu daha sürətli və ağıllı alqoritmdən istifadə edir, amma ideya eynidir: elementlər müqayisə olunur və yerləri dəyişdirilir.

Sətirlərlə siyahılar arasında körpü rolunu iki metod oynayır: split() sətri sözlərə bölüb siyahı qaytarır, join() isə siyahının elementlərini bir sətirdə birləşdirir.

Python
line = 'Baku Ganja Sumgait Lankaran'
cities = line.split()
print(cities)
print(len(cities))
print(' - '.join(cities))
▸ Gözlənilən nəticə
['Baku', 'Ganja', 'Sumgait', 'Lankaran']
4
Baku - Ganja - Sumgait - Lankaran
Python
a = [1, 2, 3]
b = a
b.append(4)
print(a)

c = a.copy()
c.append(5)
print(a, c)
▸ Gözlənilən nəticə
[1, 2, 3, 4]
[1, 2, 3, 4] [1, 2, 3, 4, 5]
Tapşırıq

Siyahıdakı ən yüksək balı, ən aşağı balı və bütün balların cəmini — hər birini ayrı sətirdə — çap et. max(), min() və sum() funksiyalarından istifadə et.

Tapşırıq · Python
scores = [72, 95, 88, 61, 90]
# 1) the highest score
# 2) the lowest score
# 3) the sum of all scores
▸ Gözlənilən nəticə
95
61
406
Tapşırıq

temps siyahısında bir həftənin temperaturları var. Dövr və append ilə 25°-dən yüksək temperaturlardan yeni hot siyahısı qur, onu böyükdən kiçiyə doğru çeşidlə və çap et. Sonra isti günlərin sayını çap et.

Tapşırıq · Python
temps = [22, 31, 27, 19, 33, 25, 29]
hot = []
# 1) append every temperature above 25 to hot
# 2) sort hot from highest to lowest and print it
# 3) print how many hot days there were
▸ Gözlənilən nəticə
[33, 31, 29, 27]
4

Əsas fikirlər

  • Siyahı [] içində sıralı və dəyişdirilə bilən qiymətlər toplusudur.
  • İndekslər 0-dan başlayır; mövcud olmayan indeks IndexError verir.
  • append, insert, remove, pop siyahını dəyişir; sum, min, max, len hesablamada kömək edir.
  • sort() siyahının özünü çeşidləyir, sorted() isə yeni siyahı qaytarır.
  • split() sətri siyahıya, join() siyahını sətrə çevirir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
nums = [10, 20, 30] olarsa, nums[1] nədir?