Обробка списків у циклах. Утворення списків з допомогою генераторів списків. Ітерації по списках. Представлення та обробка матриць з допомогою списків. Операція in
Зміст
- 1. Приклади використання операторів циклу for, while зі списками
- 2. Що таке генератори списків? Приклади
- 3. Ітерації по спискам. Приклади
- 4. Перевірка на входження в список. Операція in. Приклади
- Зв’язані теми
Пошук на інших ресурсах:
1. Приклади використання операторів циклу for, while зі списками
1.1. Формування списку з допомогою циклу while. Утворення ряду Фібоначчі
У прикладі формується список з чисел Фібоначчі. Кожне число в ряді Фібоначчі представляє собою суму двох попередніх чисел. У програмі використовуються наступні змінні
- Max – максимально допустиме значення числа в ряді;
- A – результуючий список чисел;
- x1, x2, x3 – допоміжні змінні.
Текст програми наступний
# Формування списку з допомогою циклу while # Ряд Фібоначчі від 1 до 100 Max = 100 x1 = 1 x2 = 1 x3 = x1+x2 A = [x1,x2,x3] # створити список з чисел while x3<=Max: x1=x2 x2=x3 A+=[x2] x3=x1+x2 print("A = ",A)
Результат виконання програми
A = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
⇑
1.2. Пошук елементу в списку з допомогою циклу for
У прикладі визначається позиція заданого елементу в списку рядків. Якщо шуканого елементу немає в списку, тоді після пошуку значення позиції рівне -1.
# Пошук рядка в масиві рядків # Задано список рядків L = [ 'abc', 'bcd', 'def', 'abd', 'bcd', 'hef', 'inn' ] s = str(input("Input string:")) # s - шуканий рядок pos=-1 # шукана позиція k=0 # поточна позиція в циклі for t in L: # обхід циклу if s==t: pos=k break k=k+1 print("pos = ",pos)
Результат виконання програми
Input string:inn pos = 6
⇑
1.3. Утворення нового списку з існуючого з використанням операції for. Реверсування списку
У прикладі реверсується заданий список A. Результат записується в список B.
# Реверсування списку # Заданий список A = [ 2.3, 'a', "abcde", -1220, True, False ] B = [] # Результуючий список for a in A: B = [a] + B print("A = ", A) print("B = ", B)
Результат виконання програми
A = [2.3, 'a', 'abcde', -1220, True, False] B = [False, True, -1220, 'abcde', 'a', 2.3]
⇑
2. Що таке генератори списків? Приклади
Генератор списку – це засіб мови Python, який дозволяє утворити інший список з вже існуючого списку. Елементи іншого списку можуть формуватись за деяким виразом (наприклад, збільшуватись на 10).
Більш детально про особливості використання генераторів списків описується в темі:
- Об’єкти-ітератори. Використання ітераторів та генераторів для списків. Функції rang(), next(),iter()
⇑
2.1. Приклад генерування списку з рядка символів
# Генератори списків # згенерувати список A з рядка 'Hello' A = [i for i in 'Hello'] # A = ['H', 'e', 'l', 'l', 'o'] print("A = ", A)
Результат виконання програми
A = ['H', 'e', 'l', 'l', 'o']
⇑
2.2. Приклад генерування списку з рядка символів з допомогою заданого виразу
У випадку генерування списку можна задати особливі умови створення кожного елементу списку.
У попередньому пункті 2.1 було згенеровано список з рядка. У нижченаведеному прикладі кожен символ з рядка дублюється 3 рази:
# Генератори списків # згенерувати список A з рядка 'Hello', символ c дублюється 3 рази A = [c*3 for c in 'Hello'] # A = ['HHH', 'eee', 'lll', 'lll', 'ooo'] print("A = ", A)
Як видно з вищенаведеного коду, кожен елемент нового списку формується на основі деякої закономірності – деякого виразу. У даному випадку, це потроєння c*3 кожного елементу (символу) в списку
A = [c*3 for ... ]
Вираз, з допомогою якого утворюються елементи в новостворених списках може бути будь-яким згідно з поставленою задачею.
Результат виконання програми
A = ['HHH', 'eee', 'lll', 'lll', 'ooo']
⇑
2.3. Приклад генерування списку цілих чисел
# Створення нового списку з допомогою генератора списку # Створити список з 5 елементів L = list(range(5)) # L = [0, 1, 2, 3, 4] # генератор списку: помножити кожен елемент списку L на 2 L2 = [t*2 for t in L] # L2 = [0, 2, 4, 6, 8] print("L = ", L) print("L2 = ", L2)
Результат виконання програми
L = [0, 1, 2, 3, 4] L2 = [0, 2, 4, 6, 8]
⇑
3. Ітерації по спискам. Приклади
Для обходу списку (ітерації по списку) в мові Python найкраще підходить оператор циклу for.
Більш детально про використання ітераторів для обходу списків описується в темі:
⇑
3.1. Приклад обчислення суми елементів списку з допомогою ітерації по списку
# Обхід списків # Задано список A = [ 1, 2, 5, -4, 4, 10 ] # обчислення суми елементів списку s = 0 for t in A: # ітерація по списку A s = s + t print("A = ", A) print("Summ = ", s)
Результат виконання програми
A = [1, 2, 5, -4, 4, 10] Summ = 18
⇑
3.2. Приклад обчислення суми елементів двовимірної матриці з допомогою ітерації по списку
У прикладі обчислюється сума елементів двовимірної матриці M з допомогою обходу списку.
# Ітерації по списках # Обхід матриці дійсних чисел # Задано матрицю розміром 3*4 M = [ [ 5.2, 2.8, 1.1, 4.4 ], [ 0.8, 2.3, 8.4, 5.0 ], [ 1.1, 3.2, 5.5, 1.0 ], ] # обчислення суми елементів матриці, значення яких більше 5.0 s = 0 for m in M: for n in m: if n>5.0: s += n print("M = ", M) print("Summ = ", s)
Результат виконання програми
M = [[5.2, 2.8, 1.1, 4.4], [0.8, 2.3, 8.4, 5.0], [1.1, 3.2, 5.5, 1.0]]
Summ = 19.1
⇑
4. Перевірка на входження в список. Операція in. Приклади
4.1. Приклад визначення заданого елементу в списку з допомогою операції in
У прикладі використовується операція in для заповнення значення логічної змінної b.
# Операція in - визначення наявності елементу в списку A = [ 'abc', 7, 8.5, -100 ] # Використання операції in item = 8.5 # шуканий елемент b = item in A # b = true print("b = ",b)
Результат виконання програми
b = True
⇑
4.2. Приклад визначення елементу в матриці з використанням операції in та операторів for, if
У прикладі визначається наявність заданого символу в заданій матриці. Програма виводить відповідне повідомлення.
Текст програми наступний:
# Операція in - визначення наявності елементу в матриці # задана матриця Matrix = [ [ 'a', 'c', 'f', ';' ], [ 'z', 't', 'd' ], [ 'x', 'k' ] ] symbol = str(input("Input symbol: ")) f_is = False for row in Matrix: # переміщення по вкладених списках (рядках) if symbol in row: # операція in f_is = True break if f_is: print("Символ є в матриці") else: print("Символу немає в матриці")
Результат виконання програми
Input symbol: x Символ є в матриці
⇑
Зв’язані теми
- Списки. Властивості списків. Приклади, що демонструють властивості списків
- Операції над списками: конкатенація (+), дублювання (*), видалення, зріз, доступ за індексом
- Методи роботи зі списками. Приклади
- Об’єкти-ітератори. Використання ітераторів та генераторів для списків. Функції rang(), next(), iter()
⇑