Работа со списками.
Сравнение списка и словаря.
Определение списков.
Списки - перечисляемые структуры разных элементов, заключенные в [] и разделенные запятой.
В основном списки используются в циклах.
Создание списков
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5];
list3 = ["a", "b", "c", "d"]
Создание с помощью генераторов списка.
[выражение for переменная in последовательность условие]
lst = [i for i in range(30) if i % 3 == 0]
[i for i in range(30) if i % 3 == 0]
Доступ к элементам списка, срезы.
print(list1[0])
print(list2[1:5])
print(1:)
Срез с шагом.
s = [1,2,3,4,5,6,7,8]
d = s[1:7:2]
Вставка списка вместо среза.
A = [1, 2, 3, 4, 5]
A[2:4] = [7, 8, 9]
Основные методы работы со списками.
Изменение списка.
Присвоением.
list = ['physics', 'chemistry', 1997, 2000];
print list[2]
list[2] = 2001;
print list[2]
Добавление элементов.
lst.append(element)
Удаление элементов.
del list1[2];
Получение информации о списке
len(list) # общее количество элементов
max(list) # максимальный элемент
min(list) # минимальный элемент
Сложение.
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6]
Умножение.
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!']
Проверка на существование элемента.
3 in [1, 2, 3]
Итерация по списку.
for x in [1, 2, 3]: print x
Встроенные функции для списков.
Сравнение списков
cmp(list1, list2)
Создание списка из кортежа.
list(seq)
Методы списков:
list.append(obj) # добавление нового элемента в конец списка
list.count(obj) # возвращает количество повторений элемента в списке
list.extend(seq) # добавляет новый список в конец (расширяет)
lst = [1,2,3]
lst.extend([4,5,6])
print lst
>> [1, 2, 3, 4, 5, 6]
Нахождение индекса элемента.
list.index(obj)
[1, 2, 3, 4, 5, 6]
>>> print lst.index(2)
1
>>> print lst.index(4)
3
>>> print lst.index(44)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 44 is not in list
list.insert(index, obj) # вставляет элемент в нужную позицию внутрь списка
list.pop() # возвращает последний объект удаляя его из списка
list.remove(obj) # просто удаляет объект из списка
list.reverse() # переворачивает порядок элементов
Преобразование списка в строку с разделителем.
'разделитель'.join(list)
Преобразование строки в список по разделителю.
'разделитель'.join(list)
Сортировка списков.
list.sort([func])
Сортирует список применяя функцию к соседним элементам.
Если функция возвращает 1, то меняет элементы местами и идет сначала.
lst = [2,4,7,3,9]
def compare(it1,it2):
if it1>it2:
return 1
else:
return -1
lst.sort(compare)
print lst
Compare functions specifies a custom comparison function of two arguments (list items) which should return a negative, zero or positive number.
[('c', 4), ('b', 2), ('a', 3)] => [('c', 4), ('a', 3), ('b', 2)]
lst = [('c', 4), ('b', 2), ('a', 3)]
def letter_cmp(a, b):
if a[1] > b[1]:
return -1
elif a[1] == b[1]:
if a[0] > b[0]:
return 1
else:
return -1
else:
return 1
lst.sort(letter_cmp)
print lst