В серии: Библиотека alt м. В. Сысоева, И. В. Сысоев


Download 0.87 Mb.
bet24/40
Sana23.04.2023
Hajmi0.87 Mb.
#1387407
TuriКнига
1   ...   20   21   22   23   24   25   26   27   ...   40
Bog'liq
Боши Лекция Парадигма и методы программирование

2.4. Списки


>>> list1[0] + list1[1]
’Py’
>>> list1[0]
’P’
>>> list1[0:5]
[’P’, ’y’, ’th’, ’o’, ’n’]
>>> list1[5:]
[3.4]
>>> (list1)
< ’list’>
Обратите внимание, что нумерация элементов всегда начинается с нуля, поэтому нулевой элемент это ’P’.
В отличие от строк, списки — это изменяемые последовательности. Если представить строку как объект в памяти, то когда над ней выполняются операции конкатенации и повторения, то эта строка не меняется, а в результате операции создаётся другая строка в другом месте памяти. В строку нельзя добавить новый символ или удалить существующий, не создав при этом новой строки. Со списком дело обстоит иначе. При выполнении операций новые списки могут не создаваться, а будет изменяться непосредственно оригинал. Из списков можно удалять элементы, добавлять новые. При этом следует помнить, многое зависит от того, как вы распоряжаетесь переменными.
Символ в строке изменить нельзя, элемент списка — можно:
>>> mystr = ’Python’
>>> mylist = [’P’, ’y’, ’t’, ’h’, ’o’, ’n’]
>>> mystr[1] = ’i’
Traceback (most recent call last):

File "
", line 1, mystr[1] = ’i’



TypeError: ’str’ does
>>> mylist[1] = ’i’
>>> mylist
[’P’, ’i’, ’t’, ’h’, ’o’, ’n’]

support item assignment

В списке можно заменить целый срез:
>>> mylist[:3] = [’Y’, ’e’, ’s’]
>>> mylist
[’Y’, ’e’, ’s’, ’h’, ’o’, ’n’]
Для списка можно создавать его копию:
>>> list1 = [’P’,’y’,’t’,’h’,’o’,’n’]
>>> list2 = list1.copy() #Создание копии списка
>>> list2[1] = ’i’
>>> list2, list1
([’P’, ’i’, ’t’, ’h’, ’o’, ’n’], [’P’, ’y’, ’t’, ’h’, ’o’, ’n’])
Список list2 изменился, а список list1 — нет.
Для списка можно создать вторую ссылку на список. Внимание! При создании второй ссылки данные не копируются, просто эти данные теперь имеют два имени, поэтому изменение list1 будет приводить к изменению list2:
>>> list2 = list1 #Создание второй ссылки, а не копии
>>> list2[1] = ’i’
>>> list2, list1
([’P’,’i’,’t’,’h’,’o’,’n’], [’P’,’i’,’t’,’h’,’o’,’n’])
Изменились оба списка. Для создания копии предусмотрен более простой синтаксис, нежели использование стандартного метода copy: достаточно взять срез списка от начала и до конца: list3 = list1[:] эквивалентно тому, что мы написали бы list3 = list1.copy().
Таблица 2.6. Методы списка

Метод

Описание

L.append(x)

Добавление элемента со значением x в конец списка L:
>>> L = [’P’, ’y’, ’t’, ’h’, ’o’, ’n’]
>>> L.append(’3’)
>>> L
[’P’, ’y’, ’t’, ’h’, ’o’, ’n’, ’3’]

L.extend(T)

Добавление списка или кортежа T в конец списка L. Похоже на объединение списков, но создание нового списка не происходит:
>>> L = [’P’, ’y’, ’t’, ’h’, ’o’, ’n’]
>>> T = [’3’, ’.’, ’4’]
>>> L.extend(T)
>>> L
[’P’, ’y’, ’t’, ’h’, ’o’, ’n’, ’3’, ’.’, ’4’]
>>> L = [’P’, ’y’, ’t’, ’h’, ’o’, ’n’]
>>> L.append(T)
>>> L
[’P’, ’y’, ’t’, ’h’, ’o’, ’n’, [’3’, ’.’, ’4’]]

L.insert(i,x)

Вставка элемента со значением х на позицию i в списке L:
>>> L = [’P’, ’y’, ’t’, ’h’, ’o’, ’n’]
>>> L.insert(3, ’!’)
>>> L
[’P’, ’y’, ’t’, ’!’, ’h’, ’o’, ’n’]

Download 0.87 Mb.

Do'stlaringiz bilan baham:
1   ...   20   21   22   23   24   25   26   27   ...   40




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling