Для задання і введення елементів списку користуються конструкцією із циклом з параметром:
a = [] # створення порожнього списку
for i in range(int(input('Введіть кількість елементів списку: '))):
a.append(int(input())) # додавання елементів у кінець списку
print(a)
Створимо список квадратів чисел у діапазоні від 0 до 7:
a = []
n = int(input('Введіть кількість елементів списку: '))
for i in range(n):
a.append(i ** 2)
print(a)
Результат для 8-ми елементів: [0, 1, 4, 9, 16, 25, 36, 49]
Такий самий результат можна отримати, використовуючи генератор списку – вираз, який дозволяє заповнити список за певною формулою. Він має такий загальний вигляд:
[вираз for змінна in діапазон]
Отже, список квадратів чисел можна створити так:
a = [i ** 2 for i in range(8)]
print(a)
Іноді зручно зберігати інформацію у вигляді прямокутних таблиць – так званих матриць або двовимірних масивів. У Python такі матриці створюють у вигляді списку, кожен елемент якого теж є списком.
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Звертатись до елементів списку можна по індексу (нагадуємо, що нумерація починається з нуля). Тобто елемент matrix[0] – це список [1, 2, 3], елемент matrix[1] – це список [4, 5, 6] і т. д. Також можна звертатись конкретно до кожного елемента матриці, вказавши в квадратних дужках номер списку і номер позиції у цьому списку: matrix[0][0] – це елемент 1, matrix[0][1] – це 2, print(matrix[0][2]) – це 3, matrix[1][0] – це 4, matrix[1][1] – це 5 і т. д.
Для задання і введення елементів у масив використовують вкладений цикл. Наприклад, виведемо елементи масиву, створеного вище, у вигляді таблиці.
for i in range(len(matrix)):
for j in range(len(matrix[i])):
print(matrix[i][j], end = ' ')
print()
Результат:
1 2 3
4 5 6
7 8 9
Параметр циклу i крокує по списках [1, 2, 3], [4, 5, 6] та [7, 8, 9], а параметр j – по кожному з елементів цих списків, фіксуючи i.
Можна крокувати не по індексам, а по значеннях у списку:
for row in matrix:
for elem in row:
print(elem, end = ' ')
print()
Також для виводу матриці можна скористатись методом join:
for row in matrix:
print(' '.join([str(elem) for elem in row]))
Або так:
for row in matrix:
print(' '.join(map(str, row)))
(Вбудована функція map застосовує зазначену функцію до кожного елементу зазначеної послідовності.)
За допомогою циклу for можна здійснювати перебір елементів словника.
Приклад:
dictionary = {'drink': 'juice',
'food': 'spaghetti',
'cutlery': 'fork'}
for key in dictionary:
print(key, dictionary[key])
Результат:
drink juice
food spaghetti
cutlery fork
Вибравши ключ, можна видаляти відповідні елементи словника. Розглянемо приклади.
Спосіб 1:
dictionary = {'drink': 'juice',
'food': 'spaghetti',
'cutlery': 'fork'}
key = 'food'
if key in dictionary:
del dictionary[key]
print(dictionary)
Результат: {'drink': 'juice', 'cutlery': 'fork'}
Спосіб 2:
dictionary = {'drink': 'juice',
'food': 'spaghetti',
'cutlery': 'fork'}
key = 'food'
try:
del dictionary[key]
except KeyError:
print('Немає елементів з ключем "' + key + '" у словнику')
print(dictionary)
Результат: {'drink': 'juice', 'cutlery': 'fork'}
Аналогічно до генераторів списків можна створювати генератори словників. Наведемо приклад, у якому необхідно поміняти місцями ключ та його значення у словнику:
dict1 = {'drink': 'juice', 'food': 'spaghetti', 'cutlery': 'fork'}
dict2 = {value: key for key, value in dict1.items()}
print(dict2)
Результат: {'juice': 'drink', 'spaghetti': 'food', 'fork': 'cutlery'}