Модуль 6.3 (Кортежи. Продолжение).
Кортежи, как и списки, являются упорядоченной коллекцией, то есть все элементы пронумерованы и имеют свой порядковый номер — индекс. Поэтому мы также можем обращаться к элементам по индексам
Кортеж является
неизменяемым объектом
Кортеж является
упорядоченной коллекцией
Что увидим на экране после этого кода?
my_tuple = (10, 20, 30, 40, 50) my_tuple[1] = 60 print(my_tuple)
TypeError
Перед вами кортеж
my_tuple
Выведите сперва на отдельной строке элемент, хранящийся под индексом 44, а затем на следующей строке — девятое с конца значение
my_tuple = (32, 45, 32, 60, 43, 19, 39, 75, 50, 12, 53, 13, 28, 70, 68, 5, 64, 55, 30, 47, 23, 20, 17, 36, 45, 31, 46, 50, 33, 45, 9, 41, 12, 57, 40, 43, 47, 51, 56, 54, 40, 30, 37, 23, 43, 66, 64, 27, 44, 75, 51, 2, 19, 72, 30, 8, 29, 43, 7, 73, 34, 65, 54, 50, 43, 6, 50, 45, 49, 30, 39, 50, 41, 70, 38, 16, 31, 51, 72, 45, 58, 39, 50, 56, 24, 30, 9, 53, 27, 31, 68, 56, 26, 39, 34, 50, 10, 12, 3, 27) print(my_tuple[44]) # выводит число с индесов 44 (по счету 45 т.к. отчет начинается с нуля) print(my_tuple[-9]) # выводит число 9 с конца
Перед вами кортеж
my_tuple
При помощи среза сохраните
- в переменную
slice_5_10
значения с 5-го индекса по 10-йвключительно
- в переменную
slice_from_20
значения с 20-го индекса и по конец кортежа- в переменную
slice_to_35
значения с начала кортежа по 35-й индексне включительно
Распечатайте данные переменные на отдельных строках в порядке их перечисления
my_tuple = (32, 45, 32, 60, 43, 19, 39, 75, 50, 12, 53, 13, 28, 70, 68, 5, 64, 55, 30, 47, 23, 20, 17, 36, 45, 31, 46, 50, 33, 45, 9, 41, 12, 57, 40, 43, 47, 51, 56, 54, 40, 30, 37, 23, 43, 66, 64, 27, 44, 75, 51, 2, 19, 72, 30, 8, 29, 43, 7, 73, 34, 65, 54, 50, 43, 6, 50, 45, 49, 30, 39, 50, 41, 70, 38, 16, 31, 51, 72, 45, 58, 39, 50, 56, 24, 30, 9, 53, 27, 31, 68, 56, 26, 39, 34, 50, 10, 12, 3, 27) slice_5_10 = my_tuple[5:11] # [5:11] - возвращет символы с индексом от 5 по 10 slice_from_20 = my_tuple[20:] # [20:] - возвращает символы с индексом 20 и до конца списка slice_to_35 = my_tuple[:35] # [:35] - возвращает символы от начала списка и до символа с индексом 35 print(slice_5_10) # выводим числа с 5 по 10 print(slice_from_20) # выводим числа с 20 и до конца print(slice_to_35) # выводим числа до числа с индесом 35
При помощи среза разверните/переверните кортеж
my_tuple
и распечатайте на экран полученное значениеРазвернуть(reverse) кортеж или любую другую упорядоченную коллекцию это значит расположить элементы в обратном порядке от последнего до первого
my_tuple = (32, 45, 32, 60, 43, 19, 39, 75, 50, 12, 53, 13, 28, 70, 68, 5, 64, 55, 30, 47, 23, 20, 17, 36, 45, 31, 46, 50, 33, 45, 9, 41, 12, 57, 40, 43, 47, 51, 56, 54, 40, 30, 37, 23, 43, 66, 64, 27, 44, 75, 51, 2, 19, 72, 30, 8, 29, 43, 7, 73, 34, 65, 54, 50, 43, 6, 50, 45, 49, 30, 39, 50, 41, 70, 38, 16, 31, 51, 72, 45, 58, 39, 50, 56, 24, 30, 9, 53, 27, 31, 68, 56, 26, 39, 34, 50, 10, 12, 3, 27) my_tuple = list(my_tuple) # преобразовываем кортеж в список для того чтобы развернуть его my_tuple.reverse() # .reverse() - переворачивает список my_tuple = tuple(my_tuple) # преобразовываем список обратно в кортеж print(my_tuple) # выводим развернутый кортеж
Мы уже выяснили, что кортежи являются неизменяемыми объектами, записываются в круглых скобках и очень похожи на списки. Если вспомнить списки, то у них было много методов, меняющих само состояние списка и его элементов (
append
,sort
,reverse
,remove
и т.д.). А кортежи из-за своей неизменяемости не могут обладать подобными методами и отсюда мы получаем очень незначительную: только два метода
my_tuple = (32, 45, 32, 60, 43, 19, 39, 75, 50, 12, 53, 13, 28, 70, 68, 5, 64, 55, 30, 47, 23, 20, 17, 36, 45, 31, 46, 50, 33, 45, 9, 41, 12, 57, 40, 43, 47, 51, 56, 54, 40, 30, 37, 23, 43, 66, 64, 27, 44, 75, 51, 2, 19, 72, 30, 8, 29, 43, 7, 73, 34, 65, 54, 50, 43, 6, 50, 45, 49, 30, 39, 50, 41, 70, 38, 16, 31, 51, 72, 45, 58, 39, 50, 56, 24, 30, 9, 53, 27, 31, 68, 56, 26, 39, 34, 50, 10, 12, 3, 27) print(my_tuple.count(50)) # метод .count(num) - подсчитывает сколько раз num встречается в кортеже. И выводим это количество
Кортеж является
итерируемым объектом
Перед вами кортеж
words_tuple
При помощи цикла for обойдите слова, хранящиеся в кортеже
words_tuple
, и для каждого элемента выведите строку видаДлина слова {word} = {len_word}Например, для кортежа
words_tuple=('hi', 'world')
ответ был бы таким:Длина слова hi = 2 Длина слова world = 5
words_tuple = ('quaint', 'leftovers', 'thesis', 'density', 'retired', 'weak', 'tolerate', 'sensitivity', 'primary', 'definition', 'determine', 'bring', 'monstrous', 'hurl', 'timetable', 'month', 'advocate', 'provoke', 'stress', 'omission') for i in words_tuple: # циклом мы берём по 1 слову из кортежа каждую итерацию print(f'Длина слова {i} = {len(i)}') # с помощью ф-строки мы вывели в нужнем формате каждое слово из списка и его длину
Допишите программу ниже, чтобы она вывела среднее арифметическое всех нечетных значений, хранящихся в кортеже
my_tuple
.
my_tuple = (-214, 181, -139, 448, -664, -66, 213, 832, 717, -462, -924, -706, -85, -244, -222, -340, -482, -518, -781, 759, -593, 905, -354, -377, -141, -742, 383, -381, 109, -639, -480, -810, -686, 892, -612, 696, 993, 791, 631, -493, -218, -829, -275, 619, -628, -241, -565, -835, -69, 747, 711, -252, -811, -407, -153, 904, 933, -254, 307, -493, -419, -109, -543, 155, -127, 613, -452, -459, 856, 562, 333, -66, -77, -598, -779, -278, 867, 321, -20, -415, -357, 735, -906, -14, -370, 453, -630, -736, -830, -917, 32, 422, -895, 198, 284, 472, -986, -964, -73, 29) summa, counter = 0, 0 # создаем 2 переменные. 1 - для суммы нечетных чисел, 2 - для количества нечетных чисел for i in my_tuple: # циклом проходимся по кортежу if i % 2 != 0: # если число нечетное, то его прибавляем к сумме и к количеству прибавляем ё summa += i counter += 1 print(summa / counter) # выводим среднее арифметическое(сумма деленная на количество)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы