Последовательности в python

Последовательности в Python напоминают массивы в других языках программирования. Последовательности могут содержать разнородные объекты, изменять размер и осуществлять итерации, по элементам. К последовательностям относятся списки, строки и кортежи. Доступ к элементам последовательности можно осуществлять с помощью индексов (допускаются отрицательные). Используя индексы, можно получить доступ сразу к нескольким элементам последовательности (извлечение среза). Для этого используются три индекса (например, i, j и h), разделенные двоеточием. Индекс h указывает шаг, с которым осуществляется доступ к индексам последовательности. Элемент с индексом j не включается в срез. Если отсутствует индекс i, то извлекается срез от начала до элемента с индексом j. Если отсутствует индекс j, то извлекается срез от элемента с индексом i до конца. Индексация элементов списка начинается с нуля. С помощью знака + можно осуществить конкатенацию последовательностей, знака * — дублирование. Операторы in и not in позволяют осуществить проверку на вхождение. С помощью встроенной функции len() можно узнать длину последовательности. В Python можно использовать инструкцию присваивания последовательностей.

Списки
Списки могут содержать объекты любых типов, изменять содержимое и размер.

>>> #Создать список L
>>> L=[3,1,5,'a','b','cd',2.5,5.5,7.5] 
>>> L
[3, 1, 5, 'a', 'b', 'cd', 2.5, 5.5, 7.5]
>>> #Срез, содержащий элементы с индексами 1-4
>>> L[1:5] 
[1, 5, 'a', 'b']
>>> #Срез, содержащий элементы от начала списка 
>>> #до элемента с индексом 6
>>> L[:7] 
[3, 1, 5, 'a', 'b', 'cd', 2.5]
>>> #Срез, содержащий элементы от элемента 
>>> #с индексом 3 до конца списка
>>> L[3:] 
['a', 'b', 'cd', 2.5, 5.5, 7.5]
>>> #Срез, содержащий каждый третий элемент списка
>>> L[::3] 
[3, 'a', 2.5]
>>> #Добавить элемент со значением 7 в конец списка
>>> L.append(7) 
>>> L
[3, 1, 5, 'a', 'b', 'cd', 2.5, 5.5, 7.5, 7]
>>> #Удалить элемент со значением 7
>>> L.remove(7)
>>> L
[3, 1, 5, 'a', 'b', 'cd', 2.5, 5.5, 7.5]
>>> #Удалить из списка элемент с индексом 5
>>> L.pop(5) 
'cd'
>>> L
[3, 1, 5, 'a', 'b', 2.5, 5.5, 7.5]
>>> #Вставить в позицию 3 списка элемент со значением 'c'
>>> L.insert(3,'c') 
>>> L
[3, 1, 5, 'c', 'a', 'b', 2.5, 5.5, 7.5]
>>> #Извлечь из списка последний элемент
>>> L[-1] 
7.5
>>> #Объединить списки list и [4,'f']
>>> L.extend([4,'f']) 
>>> L
[3, 1, 5, 'c', 'a', 'b', 2.5, 5.5, 7.5, 4, 'f']
>>> #Отсортировать список по возрастанию
>>> L.sort() 
>>> L
[1, 2.5, 3, 4, 5, 5.5, 7.5, 'a', 'b', 'c', 'f']
>>> #Отсортировать список по убыванию
>>> L.reverse() 
>>> L
['f', 'c', 'b', 'a', 7.5, 5.5, 5, 4, 3, 2.5, 1]
>>>

Очень легко создавать вложенные списки

>>> L1=[['a','b','c'],[1,2,3],[1.5,2.5,3.5]]
>>> L1
[['a', 'b', 'c'], [1, 2, 3], [1.5, 2.5, 3.5]]
>>> L1[0]
['a', 'b', 'c']
>>> L1[1][1]
2
>>>

Со списками удобно работать, используя выражения генераторов списков

>>> L=[i for i in xrange(10)]
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [i+1 for i in L]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 
>>> L1=[['a','b','c'],[1,2,3],[1.5,2.5,3.5]]
>>> L2=[row[1] for row in L1]
>>> L2
['b', 2, 2.5]
>>>


Строки
Строки, как и списки, являются последовательностями. В отличие от списков, строки не могут изменять содержимое и размер. При попытке изменении строки в действительности создается модифицированная новая строка. Строка объявляется с помощью одинарных или двойных кавычек. Кроме этого можно использовать тройные кавычки, которые позволяют использовать в строках специальные символы без использования дополнительных обозначений. Это особенно удобно при отображении блоков текста. Для строк существует большое количество методов, описание которых можно найти в документации.

>>> S='numerical methods'
>>> S
'numerical methods'
>>> len(S)
17
>>> S.title()
'Numerical Methods'
>>> S.capitalize()
'Numerical methods'
>>> S.upper()
'NUMERICAL METHODS'
>>> S.lower()
'numerical methods'
>>> S.find('methods')
10
>>> S.count('m')
2
>>> S=S+'!'
>>> S
'numerical methods!'
>>> S.replace('!','.')
'numerical methods.'
>>> S[:9]
'numerical'
>>> S[10:]
'methods!'
>>>


Кортежи
Кортежи являются последовательностями. При создании кортежи заключаются в круглые скобки. Кортежи не позволяют изменять свои значения и не имеют методов.

Присваивание последовательностей
В Python последовательности можно присвоить последовательность значений. Присваивание происходит в соответствии с позициями элементов в последовательностях.
Присваивание кортежей.

>>> a,b='c','d' 
>>> a,b
('c', 'd')

Это равносильно командам a='c'; b='d'.
Присваивание строки кортежу

>>> a,b,c='ijk' 
>>> a,b,c
('i', 'j', 'k')


Присваивание кортежа списку

>>> [A,B]=(1,2)
>>> A,B
(1, 2)


Присваивание последовательности целых чисел переменным a,b,c

>>> a,b,c=range(3)
>>> a,b,c
(0, 1, 2)


Обмен значений переменных с помощью кортежей

>>> a,b=1,2
>>> a,b
(1, 2)
>>> a,b=b,a
>>> a,b
(2, 1)


Можно осуществлять присваивание одного объекта нескольким переменным

>>> a=b=c=1
>>> a
[1]
>>> b
1
>>> c
1
>>>


Это равносильно

>>> c=1
>>> b=c
>>> a=b
>>>


Такое присваивание удобно выполнять для неизменяемых объектов. Следует учитывать, что если присваивается изменяемый объект, то при его изменении с помощью одной переменной, изменяются и другие переменные.

>>> a=b=c=[]
>>> a.append(1)
>>> a
[1]
>>> b
[1]
>>> c
[1]

  • avatar
  • 0

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.