В. М. Гуровиц, gurovic@gmail.com Списки похожи на строки Список (list) Строка(string) Явное задание [1, 2, 5, 27, -3] "My string" Присваивание s = [1, 2, 5, 27, -3] s = "My string" Вывод print(s, [7, 6, 5]) [1, 2, 5, 27, -3] [7, 6, 5] print(s, 'aaa') My string aaa Обращение по индексу print(s[0], s[-1]) 1 –3 print(s[0], s[-1]) Mg Срезы print(s[1:3]) [2, 5] print(s[3::-2]) [27, 2] print(s[1:4]) ys print(s[3::-2]) sy Длина print(len(s)) 5 print(len(s)) 9 Списки похожи на строки Список (list) Пустой список/строка s = [] Строка(string) s = "" Сложение s = [1, 2] + [5, 7, 8] [1, 2, 5, 7, 8] s = s + [5] [1, 2, 5, 7, 8, 5] s = 'aaa' + "bbb" aaabbb s = s + 'c' aaabbbc Умножение на число s = [0] * 5 [0, 0, 0, 0, 0] s = [1, 2] * 3 [1, 2, 1, 2, 1, 2] s = 'a' * 5 'aaaaa' s = 'ab' * 3 'ababab' Метод count s.count(1) 3 s.count('a') 3 Сравнение [1] < [1, 2] < [2] < [2, 3] 'a'< 'ab' < 'b' < 'bc' < 'bz' in if 5 in s: if 'a' in s: Списки НЕ похожи на строки Список (list) Ввод Строка(string) s = list(map(int, input().split())) s = input() #Вводим: 1 -3 27 4 0 #Вводим: abcde Типы элементов [25, 'abcd', 'xxx', -7.5, [3, 2]] Поиск --- s.find('a') возвращает номер позиции или -1 s.index(-7) возвращает номер позиции или ОШИБКУ s.index('a') ищет только один элемент! (то же про count, in) s.index('abc') ищет один или несколько символов возвращает номер позиции или ОШИБКУ Изменение строк и списков Строки – неизменяемые (immutable) объекты replace создает новую строку можно присвоить переменной другую строку s = 'abc' s = s + 'd' s = 'xyz' s = s.replace('x','t') Изменение строк и списков Списки – изменяемые (mutable) объекты Действие Примеры Изменение одного элемента s[2] = 5 Изменение фрагмента: s[1:3] = [2, 5] Изменение длины: s[1:5] = [2, 7] Удаление одного символа: s[2:3] = [ ] Удаление нескольких символов: s[3:6] = [ ] Вставка перед i-м символом: s[i:i] = [5] Замена по срезу с шагом != 1: s[0:3:2] = [0, 0] Количество элементов должно совпадать! s[-1] = -10 s[4:4] = [5, 6, 7] Списки: методы Метод Описание s.count(x) количество элементов, равных x s.index(x, a, b) s.index(x, a) s.index(x) номер первого символа, равного x, на промежутке [a:b] (или ошибка, если таких нет) s.reverse() переставляет элементы в обратном порядке s.sort() переставляет элементы по возрастанию (должны быть одного типа) s.sort(reverse=True) переставляет элементы по убыванию s.append(x) то же, что s += [x] Списки: функции Функция Описание max(s) min(s) Находит наибольший/наименьший элемент списка и возвращает его значение sum(s) Возвращает сумму элементов списка len(s) Возвращает длину списка sorted(s) Возвращает отсортированный список reversed(s) Возвращает перевернутый список Строка → Список Строка → Список символов list("My string") ['M', 'y', ' ', 's', 't', 'r', 'i', 'n', 'g'] Строка → Список слов (по одному или нескольким пробелам) "See: very-very long string".split() ['See:', 'very-very', 'long', 'string'] Строка чисел (через пробел) → Список чисел list(map(int, "10 20 30 40".split())) [10, 20, 30, 40] Список → Строка "".join(["a","b","c"]) abc " ".join(["a","b","c"]) a b c ", ".join(["a","bb","cccc"]) a, bb, cccc "...".join(["aa","bb","cc"]) aa...bb...cc " ".join(map(str, [1, 2, 3]) 123 Примеры print(sum(list(map(int,input().split())))) a = list(map(int,input().split())) print(max(a), min(a), sum(a)/len(a)) a = list(input().split()) a.sort() print(a) a = list(map(int, a)) a.sort() print(a) Примеры a = list(map(int,input().split())) if 1 in a: print(a.index(1)) else: print('Not found') a = list(map(int,input().split())) print(a.index(1)) 2 3 4 builtins.ValueError: list.index(x): x not in list Примеры a = list(map(int,input().split())) a[1::2]=[0]*(len(a)//2) print(a) a = list(map(int,input().split())) a[::2] = a[1::2] print(a) 1 2 3 4 5 6 [2, 2, 4, 4, 6, 6] 1 2 3 4 5 builtins.ValueError: attempt to assign sequence of size 2 to extended slice of size 3 Примеры a = list(input().split()) a.sort() print(" ".join(a)) a = list(map(int, input().split())) a.sort() a = list(map(str, a)) print(" ".join(a))