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

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


learning:py

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
learning:py [03.06.2025 10:41] – [Списки и кортежи] viacheslavlearning:py [06.06.2025 09:18] (текущий) – [Поиск и методы обработки списков] viacheslav
Строка 1205: Строка 1205:
 Необработанное исключение приводит к остановке выполнения программы. Исключение может быть необработанным, если оно не было учтено в except либо возникло вне try. Необработанное исключение приводит к остановке выполнения программы. Исключение может быть необработанным, если оно не было учтено в except либо возникло вне try.
  
-стр 365 (pdf 390) 
 ===== Списки и кортежи ===== ===== Списки и кортежи =====
 //Последовательность// - индексируемая коллекция, содержащая множество значений. Есть несколько типов последовательностей, в их числе: //Последовательность// - индексируемая коллекция, содержащая множество значений. Есть несколько типов последовательностей, в их числе:
-  - //Список// - последовательность с изменяемым содержимым+  - //Список// - последовательность с изменяемым содержимым. Это более функциональный вариант //массивов//.
   - //Кортеж// - последовательность с неизменяемым содержимым   - //Кортеж// - последовательность с неизменяемым содержимым
 +
 +//Массивы// - более ограниченный вариант списков. Они могут быть созданы с помощью встроенного модуля ''array()'' или например, с помощью сторонней библиотеки numpy.
  
 <code python> <code python>
Строка 1220: Строка 1221:
 list(range(5)) # даст [0, 1, 2, 3, 4] 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>
 +
 +==== Поиск и методы обработки списков ====
 +<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.1748947316.txt.gz · Последнее изменение: viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki