9 сентября 2012 г.

Cписки, углубляемся

Списки в действии:

Операция - Интерпретация
L = []  - Пустой список
L = [0, 1, 2, 3]  - Четыре элемента с индексами 0..3
L = [‘abc’, [‘def’, ghi’]]  - Вложенные списки
L = list(‘spam’) - Создание списка из итерируемого объекта.
L = list(range(-4, 4)) - Создание списка из непрерывной последовательности   целых чисел




L[i] - Индекс, индекс индекса, срез, длина
L[i][j] 
L[i:j]
len(L)

L1 + L2 - Конкатенация, дублирование
L * 3

for x in L: print(x) - Обход в цикле, проверка вхождения
3 in L

L.append(4) - Методы: добавление элементов в список
L.extend([5,6,7])
L.insert(I, X)

L.index(1) - Методы: поиск
L.count()

L.sort() - Методы: сортировка, изменение порядка следования элементов на              L.reverse()    обратный


del L[k] - Уменьшение списка
del L[i:j]
L.pop()
L.remove(2)
L[i:j] = []

L[i] = 1 - Присваивание по индексу, присваивание срезу
L[i:j] = [4,5,6]

L = [x**2 for x in range(5)] - Генераторы списков и отображение
list(map(ord, ‘spam’))


>>> len([1, 2, 3])               # Длина
3
>>> [1, 2, 3] + [4, 5, 6]        # Конкатенация
[1, 2, 3, 4, 5, 6]
>>> [‘Ni!’] * 4                  # Повторение
[‘Ni!’, ‘Ni!’, ‘Ni!’, ‘Ni!’]


>>> str([1, 2]) + “34”        # То же, что и “[1, 2]” + “34”
‘[1, 2]34’
>>> [1, 2] + list(“34”)       # То же, что и [1, 2] + [“3”, “4”]
[1, 2, ‘3’, ‘4’]


>>> 3 in [1, 2, 3]             # Проверка на вхождение
True
>>> for x in [1, 2, 3]:
...     print(x, end=’ ‘)      # Итерации
...
1 2 3


>>> res = [c * 4 for c in ‘SPAM’]      # Генератор списков
>>> res
[‘SSSS’, ‘PPPP’, ‘AAAA’, ‘MMMM’]

>>> list(map(abs, [-1, -2, 0, 1, 2]))  #Функция map применяется к 
[1, 2, 0, 1, 2]                        # последовательности

>>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> matrix[1]
[4, 5, 6]
>>> matrix[1][1]
5
>>> matrix[2][0]
7
>>> matrix = [[1, 2, 3],
...           [4, 5, 6],
...           [7, 8, 9]]
>>> matrix[1][1]
5
>>> L = [‘spam’, ‘Spam’, ‘SPAM!’]
>>> L[1] = ‘eggs’            # Присваивание по индексу элемента
>>> L
[‘spam’, ‘eggs’, ‘SPAM!’]
>>> L[0:2] = [‘eat’, ‘more’] # Присваивание срезу: удаление+вставка
>>> L                        # Элементы 0 и 1 были заменены
[‘eat’, ‘more’, ‘SPAM!’]
>>> L.append(‘please’) # Вызов метода добавления элемента в конец списка
>>> L
[‘eat’, ‘more’, ‘SPAM!’, ‘please’]
>>> L.sort()           # Сортировка элементов списка (‘S’ < ‘e’)
>>> L
[‘SPAM!’, ‘eat’, ‘more’, ‘please’]

>>> L = [‘abc’, ‘ABD’, ‘aBe’]
>>> L.sort()                   # Сортировка с учетом регистра символов
>>> L
[‘ABD’, ‘aBe’, ‘abc’]
>>> L = [‘abc’, ‘ABD’, ‘aBe’]
>>> L.sort(key=str.lower)      # Приведение символов к нижнему регистру
>>> L
[‘abc’, ‘ABD’, ‘aBe’]
>>>
>>> L = [‘abc’, ‘ABD’, ‘aBe’]
>>> L.sort(key=str.lower, reverse=True) # Изменяет направление сортировки
>>> L
[‘aBe’, ‘ABD’, ‘abc’]

>>> L = [‘abc’, ‘ABD’, ‘aBe’]
>>> sorted(L, key=str.lower, reverse=True) # Встроенная функция сортировки
[‘aBe’, ‘ABD’, ‘abc’]
>>> L = [‘abc’, ‘ABD’, ‘aBe’]
>>> sorted([x.lower() for x in L], reverse=True) # Элементы              #предварительно
[‘abe’, ‘abd’, ‘abc’]                            # изменяются!

>>> L = [1, 2]
>>> L.extend([3,4,5]) # Добавление нескольких элементов в конец списка
>>> L
[1, 2, 3, 4, 5]
>>> L.pop()           # Удаляет и возвращает последний элемент списка
5
>>> L
[1, 2, 3, 4]
>>> L.reverse()       # Изменяет порядок следования элементов на обратный
>>> L
[4, 3, 2, 1]
>>> list(reversed(L)) # Встроенная функция сортировки в обратном порядке
[1, 2, 3, 4]          

>>> L = []
>>> L.append(1) # Втолкнуть на стек
>>> L.append(2)
>>> L
[1, 2]
>>> L.pop()     # Вытолкнуть со стека
2
>>> L
[1]

>>> L = [‘spam’, ‘eggs’, ‘ham’]
>>> L.index(‘eggs’)            # Индекс объекта
1
>>> L.insert(1, ‘toast’)       # Вставка в требуемую позицию
>>> L
[‘spam’, ‘toast’, ‘eggs’, ‘ham’]
>>> L.remove(‘eggs’)           # Удаление элемента с определенным значением
>>> L
[‘spam’, ‘toast’, ‘ham’]
>>> L.pop(1)                   # Удаление элемента в указанной позиции
‘toast’
>>> L
[‘spam’, ‘ham’]

>>> L
[‘SPAM!’, ‘eat’, ‘more’, ‘please’]
>>> del L[0]                   # Удаление одного элемента списка
>>> L
[‘eat’, ‘more’, ‘please’]
>>> del L[1:]                  # Удаление целого сегмента списка
>>> L                          # То же, что и L[1:] = []
[‘eat’]

>>> L = [‘Already’, ‘got’, ‘one’]
>>> L[1:] = []
>>> L
[‘Already’]
>>> L[0] = []
>>> L
[[]]




Комментариев нет:

Отправить комментарий