Для задання і введення елементів списку користуються конструкцією із циклом з параметром:
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'}