Просмотр содержимого документа
«Кортежи, словари, списки в PYTHON»
Типы данных:
Кортежи, списки, словари
Составила: Кадимова К.С.
Списки
- Списки в Python - упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться).
list('список') ['с', 'п', 'и', 'с', 'о', 'к'] " width="640"
1-й способ создания списка
- С помощью встроенной функции List
- Например:
list('список')
['с', 'п', 'и', 'с', 'о', 'к']
s = [] # Пустой список l = ['s', 'p', ['isok'], 2] s [] l ['s', 'p', ['isok'], 2] Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего. " width="640"
2-й способ создания списка
- Список можно создать и при помощи литерала:
- s = [] # Пустой список
- l = ['s', 'p', ['isok'], 2]
- s
- []
- l
- ['s', 'p', ['isok'], 2]
- Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего.
c = [c * 3 for c in 'list'] c ['lll', 'iii', 'sss', 'ttt'] " width="640"
3-й способ создания списка
- это генераторы списков . Генератор списков - способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for .
- c = [c * 3 for c in 'list']
- c
- ['lll', 'iii', 'sss', 'ttt']
Таблица «методы списков»
Метод
list.append (x)
Что делает
Добавляет элемент в конец списка
list.extend (L)
Расширяет список list, добавляя в конец все элементы списка L
list.insert (i, x)
Вставляет на i-ый элемент значение x
list.remove (x)
Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует
list.pop ([i])
list.index (x, [start [, end]])
Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент
Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end)
list.count (x)
Возвращает количество элементов со значением x
list.sort ([key=функция])
Сортирует список на основе функции
list.reverse ()
Разворачивает список
list.copy ()
Поверхностная копия списка
a = [66.25, 333, 333, 1, 1234.5] print (a.count(333), a.count(66.25), a.count('x')) 2 1 0 a.insert(2, -1) a.append(333) a [66.25, 333, -1, 333, 1, 1234.5, 333] a.index(333) 1 a.remove(333) a [66.25, -1, 333, 1, 1234.5, 333] a.reverse() a [333, 1234.5, 1, 333, -1, 66.25] a.sort() a [-1, 1, 66.25, 333, 333, 1234.5] " width="640"
Примеры работы со списками
- a = [66.25, 333, 333, 1, 1234.5]
- print (a.count(333), a.count(66.25), a.count('x'))
- 2 1 0
- a.insert(2, -1)
- a.append(333)
- a
- [66.25, 333, -1, 333, 1, 1234.5, 333]
- a.index(333)
- 1
- a.remove(333)
- a
- [66.25, -1, 333, 1, 1234.5, 333]
- a.reverse()
- a
- [333, 1234.5, 1, 333, -1, 66.25]
- a.sort()
- a
- [-1, 1, 66.25, 333, 333, 1234.5]
a = (1, 2, 3, 4, 5, 6) b = [1, 2, 3, 4, 5, 6] a.__sizeof__() 36 b.__sizeof__() 44 " width="640"
Кортежи
- Кортеж, по сути - неизменяемый список .
- Преимущества кортежей:
- Кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).
- Меньший размер.
a = (1, 2, 3, 4, 5, 6)
b = [1, 2, 3, 4, 5, 6]
a.__sizeof__()
36
b.__sizeof__()
44
a = tuple() # С помощью встроенной функции tuple() a () a = () # С помощью литерала кортежа a () " width="640"
Создание кортежа
- Создаем пустой кортеж:
- a = tuple() # С помощью встроенной функции tuple()
- a
- ()
- a = () # С помощью литерала кортежа
- a
- ()
a = ('s') a 's' Стоп. Получилась строка. Но как же так? Мы же кортеж хотели! Как же нам кортеж получить? a = ('s', ) a ('s',) Заработало! Все дело - в запятой. Сами по себе скобки ничего не значат, точнее, значат то, что внутри них находится одна инструкция. Кстати, кортеж можно создать и так: a = 's', a ('s',) " width="640"
Создание кортежа
Создаем кортеж из одного элемента:
Стоп. Получилась строка. Но как же так? Мы же кортеж хотели! Как же нам кортеж получить?
Заработало! Все дело - в запятой. Сами по себе скобки ничего не значат, точнее, значат то, что внутри них находится одна инструкция. Кстати, кортеж можно создать и так:
a = tuple('hello, world!') a ('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!') " width="640"
Создание кортежа
- Ну и создать кортеж из итерируемого объекта можно с помощью функции tuple()
- a = tuple('hello, world!')
- a
- ('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!')
Операции над кортежами
- Все операции над списками , не изменяющие список (сложение, умножение на число, методы index() и count() и некоторые другие операции). Можно также по-разному менять элементы местами и так далее.
- Например, гордость программистов на python - поменять местами значения двух переменных:
- a, b = b, a
Словари
- Словари в Python - неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.
- Чтобы работать со словарём, его нужно создать. Создать его можно несколькими способами.
d = {} d {} d = {'dict': 1, 'dictionary': 2} d {'dict': 1, 'dictionary': 2} " width="640"
Создание словаря
- Во-первых, с помощью литерала:
- d = {}
- d
- {}
- d = {'dict': 1, 'dictionary': 2}
- d
- {'dict': 1, 'dictionary': 2}
d = dict(short='dict', long='dictionary') d {'short': 'dict', 'long': 'dictionary'} d = dict([(1, 1), (2, 4)]) d {1: 1, 2: 4} " width="640"
Создание словаря
- Во-вторых, с помощью функции dict :
- d = dict(short='dict', long='dictionary')
- d
- {'short': 'dict', 'long': 'dictionary'}
- d = dict([(1, 1), (2, 4)])
- d
- {1: 1, 2: 4}
d = dict.fromkeys(['a', 'b']) d {'a': None, 'b': None} d = dict.fromkeys(['a', 'b'], 100) d {'a': 100, 'b': 100} " width="640"
Создание словаря
- В-третьих, с помощью метода fromkeys :
- d = dict.fromkeys(['a', 'b'])
- d
- {'a': None, 'b': None}
- d = dict.fromkeys(['a', 'b'], 100)
- d
- {'a': 100, 'b': 100}
d = {a: a ** 2 for a in range(7)} d {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36} " width="640"
Создание словаря
- В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков .
- d = {a: a ** 2 for a in range(7)}
- d
- {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36}
d = {1: 2, 2: 4, 3: 9} d[1] 2 d[4] = 4 ** 2 d {1: 2, 2: 4, 3: 9, 4: 16} " width="640"
- Теперь попробуем добавить записей в словарь:
- d = {1: 2, 2: 4, 3: 9}
- d[1]
- 2
- d[4] = 4 ** 2
- d
- {1: 2, 2: 4, 3: 9, 4: 16}
Методы словарей
- dict.clear () - очищает словарь.
- dict.copy () - возвращает копию словаря.
- classmethod dict.fromkeys (seq[, value]) - создает словарь с ключами из seq и значением value (по умолчанию None).
- dict.get (key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).
- dict.items () - возвращает пары (ключ, значение).
- dict.keys () - возвращает ключи в словаре.
- dict.pop (key[, default]) - удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).
- dict.popitem ( ) - удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.
- dict.setdefault (key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).
Домашнее задание
- Знать материал лекции. Составить мини-код на языкеPython содержащий кортеж, список и словарь.
- Знать материал лекции.
- Составить мини-код на языкеPython содержащий кортеж, список и словарь.