Инструменты пользователя

Инструменты сайта


learning:py

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
learning:py [02.06.2025 08:40] – [Обработка исключений] viacheslavlearning:py [06.06.2025 09:18] (текущий) – [Поиск и методы обработки списков] viacheslav
Строка 1205: Строка 1205:
 Необработанное исключение приводит к остановке выполнения программы. Исключение может быть необработанным, если оно не было учтено в except либо возникло вне try. Необработанное исключение приводит к остановке выполнения программы. Исключение может быть необработанным, если оно не было учтено в except либо возникло вне try.
  
-стр 365 (pdf 390)+===== Списки и кортежи ===== 
 +//Последовательность// - индексируемая коллекция, содержащая множество значений. Есть несколько типов последовательностей, в их числе: 
 +  - //Список// - последовательность с изменяемым содержимым. Это более функциональный вариант //массивов//
 +  - //Кортеж// - последовательность с неизменяемым содержимым 
 + 
 +//Массивы// - более ограниченный вариант списков. Они могут быть созданы с помощью встроенного модуля ''array()'' или например, с помощью сторонней библиотеки numpy. 
 + 
 +<code python> 
 +# Списки 
 +nums = [2, 4, 6, 8, 10] 
 +names = ['Вася', 'Петя', 'Коля'
 +info = ['Вася', '22', '1440.0'] # Значения могут быть разных типов 
 + 
 +# Функция list() преобразует некоторые типы объектов в списки 
 +list(range(5)) # даст [0, 1, 2, 3, 4] 
 + 
 +# * становится оператором повторения, если слева от него последовательность 
 +repeat = [1,2,3] * 3 
 +print(repeat) 
 +[1, 2, 3, 1, 2, 3, 1, 2, 3] 
 + 
 +# Обход списка в for 
 +numbers = [2, 4, 6, 8, 10] 
 +for num in numbers: 
 +  print(num) 
 +   
 +# Индексы 
 +numbers[0] # 2 
 +numbers[1] # 4 
 +numbers[-1] # 10 
 +numbers[5] # Исключение IndexError 
 + 
 +# Длина последовательности - len() 
 +numbers = [2, 4, 6, 8, 10] 
 +index = 0 
 +while index < len(numbers): 
 +  print(numbers[index]) 
 +  index += 1 
 + 
 +# Обход списка по индексу 
 +numbers = [2, 4, 6, 8, 10] 
 +for index in range(len(numbers)): 
 +  print(numbers[index]) 
 +   
 +# Изменение списка. Изменить можно только существующие индексы. 
 +numbers = [2, 4, 6, 8, 10] 
 +numbers[0] = 1 # [1, 4, 6, 8, 10] 
 +numbers[5] = 12 # исключение IndexError 
 +# Можно сначала создать список, а потом менять его значения циклом 
 +numbers = [0] * 6 
 +n = 11 
 +for i in range(len(numbers)): 
 + numbers[i] = n 
 + n += 1 
 +print(numbers) # [11, 12, 13, 14, 15, 16] 
 + 
 +# Конкатенация (слияние) списков 
 +list1 = [1,2,3] 
 +list1 = [4,5,6] 
 +list3 = list1 + list2 # [1, 2, 3, 4, 5, 6] 
 +# Можно так: 
 +list1 += list2 # list1 будет [1, 2, 3, 4, 5, 6] 
 + 
 +# Нарезка списка - [<начальный индекс>:<конечный индекс (не включая его)>]. 
 +numbers = [2, 4, 6, 8, 10] 
 +print(numbers[1:4]) # [4, 6, 8] 
 +print(numbers[2:-1]) # [6, 8] 
 +# Если начальный индекс не указан, то подразумевается, что он равен 0 
 +print(numbers[:-3]) # [2, 4] 
 +# Если конечный индекс не указан, то перечисление будет идти до конца списка 
 +print(numbers[3:]) # [8, 10] 
 +print(numbers[-3:]) # [6, 8, 10] 
 +# Если не указаны оба индекса, то это то же самое, что и список целиком. Эти значения одинаковы: 
 +print(numbers[:]) 
 +print(numbers) 
 +# Указание шага: 
 +print(numbers[::2]) # [2, 6, 10] 
 +print(numbers[1::2]) # [4, 8] 
 +# Если в нарезке списка указать несуществующие индексы, то исключения не будет. 
 +print(numbers[-888::2]) # [2, 6, 10] # Если начальный индекс за пределами диапазона индексов - используется начало списка 
 +print(numbers[1:999:2]) # [4, 8] # Если конечный индекс за пределами диапазона индексов - используется длина списка 
 +print(numbers[777:1:2]) # [] # Если индекс конца меньше индекса начала - пустой список 
 +</code> 
 + 
 +==== Поиск и методы обработки списков ==== 
 +<code python> 
 +# Поиск выполняется при помощи инструкции in 
 +if num in [122,133,144,155]: 
 +  print('The number is in the list'
 +   
 +# append(value) - добавить значение в конец списка 
 +numbers = [2, 4, 6, 8, 10] 
 +numbers.append(12) 
 +print(numbers) # [2, 4, 6, 8, 10, 12] 
 + 
 +# index(value) - индекс первого совпавшего значения. Если значение не найдено - исключение ValueError. 
 +print(numbers.index(6)) # 2 
 + 
 +# insert(index,value) - вставить значение на указанный индекс. Остальные сдвинутся. Если индекс за пределами диапазона, добавится в начало или в конец. 
 +numbers.insert(3,7) 
 +print(numbers) # [2, 4, 6, 7, 8, 10] 
 + 
 +# sort() - сортировка по значениям 
 +numbers = [46, 2, 69, 28, 15] 
 +numbers.sort() 
 +print(numbers) # [2, 15, 28, 46, 69] 
 + 
 +# remove(value) - удалить первое совпавшее значение. Если значение не найдено - исключение ValueError. 
 +numbers = [46, 5, 69, 5, 15] 
 +numbers.remove(5) 
 +print(numbers) # [46, 69, 5, 15] 
 + 
 +# Удалить конкретный индекс 
 +numbers = [46, 5, 69, 5, 15] 
 +del numbers[2] 
 +print(numbers) # [46, 5, 5, 15] 
 + 
 +# reverse() - инвертировать порядок значений 
 +numbers = [46, 2, 69, 28, 15] 
 +numbers.reverse() 
 +print(numbers) # [15, 28, 69, 2, 46] 
 + 
 +# min(), max() - минимальное и максимальное значение 
 +numbers = [46, 5, 69, 5, 15] 
 +print(min(numbers)) # 5 
 +print(max(numbers)) # 69 
 +</code> 
 + 
 +==== Копирование списков ==== 
 +<code python> 
 +numbers = [2, 4, 6, 8, 10] 
 +numbers2 = numbers # теперь обе переменные ссылаются на один и тот же объект в памяти 
 +# Если изменить один объект, то изменится и второй 
 +numbers[0] = 222 
 +print(numbers2) # [222, 4, 6, 8, 10] 
 + 
 +# Чтобы сделать копию, но отдельную: 
 +numbers2 = [] 
 +for i in numbers: 
 +  numbers2.append(i) 
 +# Другой вариант: 
 +numbers2 = [] + numbers 
 +</code> 
 + 
 +стр 388 (pdf 413)
 ====== Проблемы и их решение ====== ====== Проблемы и их решение ======
  
learning/py.1748853616.txt.gz · Последнее изменение: viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki