Робота із списками.
Порівняння списку та словника.
Визначення списків.
Списки - структури різних елементів, що перераховуються, укладені в [] і розділені комою.
Здебільшого списки використовуються у циклах.
Створення списків
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