MyTetra Share
Делитесь знаниями!
Python: работа со списками
Время создания: 29.12.2012 10:13
Текстовые метки: python, list, список
Раздел: Компьютер - Программирование - Язык Python
Запись: xintrea/mytetra_syncro/master/base/135676159266sykg3glv/text.html на raw.github.com

Списки – упорядоченные коллекции объектов произвольных типов.


Для группировки множества элементов в питоне используется список list, который может быть записан как индексированная последовательность значений, разделенных запятыми, заключенная в квадратные скобки.


lst = ['spam', 'drums', 100, 1234]


Списки имеют произвольную вложенность, т.е. могут включать в себя любые вложенные списки. Физически список представляет собой массив указателей (адресов) на его элементы. С точки зрения производительности (performance) списки имеют следующие особенности.


  • Время доступа к элементу есть величина постоянная и не зависит от размера списка.
  • Время на добавление одного элемента в конец списка есть величина постоянная.
  • Время на вставку зависит от того, сколько элементов находится справа от него, т.е. чем ближе элемент к концу списка, тем быстрее идет его вставка.
  • Удаление элемента происходит так же, как и в пункте 3.
  • Время, необходимое на реверс списка, пропорционально его размеру — O(n).
  • Время, необходимое на сортировку, зависит логарифмически от размера списка.


Элементы списка не обязательно должны быть одного типа.


# Создание списков

List = [] # пустой список

List = [ 'hello', 5, [1,2,3] ] # список с вложенным списком


List[i] # индекс

List[i][j] # индекс индекса

List[i:j] # срез (элементы от i до j)

List[:] # срез всего списка(копия списка)


len(List) # длинна(количество элементов)


List = [1,2,3] + [4,5,6] # конкатенация или объединение списков

List = [1,2,3] * 3 # дублирование, повторить то что в скобках n-раз, в данном случае 3 раза


List.append([1,2,3]) # добавить элемент, будет добавлен элемент содержащий список

List.extend([1,2,3]) # наследовать значения, будут добавлены элементы 1,2,3 (неясно, разобраться)


List.sort() # сортировка списка


List.index('элемент') # возвращает индекс элемента, иначе ошибку

List.insert('индекс', 'элемент') # вставка элемента в нужное место по индексу


List.reverse() # изменение порядка следования элементов на обратный



# Присвоение и создание элементов списка

List['индекс'] = 'значение' # присваивание по индексу


List['индекс начала', 'длинна'] = [2,3,4] #присвоить элементы


List.range(10) # создать список из 10 элементов, первый эл. будет иметь значение - 0, а последний - 9

List.range(3, 10) # создать список начиная с 3-го по 10-ый элемент - [3, 4, 5, 6, 7, 8, 9]



# Удаление элементов

del List['индекс']

del List['индекс начала', 'длинна']


List.pop() # удаляет последний элемент списка

List.pop(0) # удаляет элемент по индексу


List.remove('значение') # удаляет элемент с значением


List['индекс начала', 'индекс конца'] = [] # удаляет элементы


# Удалить в списке повторяющиеся элементы

List = list(set(List))



Генераторы списков – это конструкция (заимствованная из языка программирования Haskell), содержащая программный код, который создает список, содержащий значения/объекты, сгенерированные программным кодом. Читать генераторы списков рекомендуется начиная с цикла for, далее проверить есть ли условие в правой части, ну а после обратить внимание на левую часть где выполняются действия над элементом.


List = [x + 1 for x in range(10)] # создается новый список, элементы которого увеличены на единицу

List = [x + 1 for x in range(10) if x % 2 == 0] # создается новый список, четные элементы которого увеличены на единицу



Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования