1 | my_list =[True, 786, 3.14, 'text', 70.2]
2 | second_list = [123, 'text']
3 |
4 | print my_list # Напечатает весь список
5 | print my_list[0] # Напечатает первый элемент списка
6 | print my_list[1:3] # Напечатает элементы списка со второго по третий
7 | print my_list[2:] # Напечатает элементы списка начиная с третьего
8 | print second_list * 2 # Напечатает удвоенный список
9 | print my_list + second_list # Напечатает объединенные списки
В результате вы увидите:
| [True, 786, 3.14, 'text', 70.2]
| True
| [786, 3.14]
| [3.14, 'text', 70.2]
| [123, 'text', 123, 'text']
| [True, 786, 3.14, 'text', 70.2, 123, 'text']
Кортеж это еще один составной тип данных, похожий на список. Кортеж состоит из ряда значений, разделенных запятыми, заключенными в круглые скобки ( ( ) ). Основным различием между списками и кортежами является то, что элементы кортежей не могут быть изменены. То есть, кортежи можно рассматривать как списки доступные только для чтения.
Если у вас нет необходимости изменять элементы списка, то для экономии места в памяти лучше использовать тип данных кортеж.
1 | my_tuple =(True, 786, 3.14, 'text', 70.2)
2 | second_tuple = (123, 'text')
3 |
4 | print my_tuple # Печатает весь кортеж
5 | print my_tuple[0] # Печатает первый элемент
6 | print second_tuple * 2 # Печатает удвоенный кортеж
7 | print my_tuple + second_tuple # Печатает объединенные кортежи
В результате вы получите:
| (True, 786, 3.14, 'text', 70.2)
| True
| (123, 'text', 123, 'text')
| (True, 786, 3.14, 'text', 70.2, 123, 'text')
При этом, следующие действия доступны для списков и недоступны для кортежей:
1 | my_list = ["Rome", 23, ["cat", "dog"], True, 3.14]
2 | my_tuple = ("Rome", 23, ["cat", "dog"], True, 3.14)
3 | my_list[0] = "Paris" # Замена значения первого элемента сработает для списка
4 | my_tuple[0] = "Paris" # Та же операция для кортежа вызовет ошибку
Словари в Python это неотсортированная колекция элементов, доступ к которым осуществляется по ключу. То есть, каждому ключу словаря соответствует определенное значение. Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), значением - любой тип данных.
Пары ключ, значение словаря заключаются в фигурные скобки ( { } ). Есть несколько способов создания словарей:
1 | my_dict = { } # Создаем пустой словарь
2 | my_dict["country"] = "Mexico" # Присваиваем ключу country значение Mexico
3 | print my_dict["country"] # Выведет Mexico
4 |
5 | # Заполнение словаря при инициализации
6 | another_dict = {"number":23, 2: True, "my_list":[1, 2, 3]}
7 | print another_dict.keys() # Напечатает список всех ключей
8 | print another_dict.values() # Напечатает список всех значений
Данный код выведет следующее:
Обратите внимание, что ключи и значения выводятся не в том порядке, в котором мы их задавали.
Сеты в Python:
Сет в Python это еще один изменяемый, коллекционный тип данных, отличительной чертой которого является то, что он хранит только уникальные значания.
Создать сеты можно следующими способами:
1 | # Создание пустого сета
2 | s = set()
3 | # Создание сета инициализацией
4 | s = {"hi", "bye"}
Для добавление элемента в сет используется метод add, для удаления - pop или remove. Добавление в сет уже существующего элемента не повлияет на сет. Сеты обладают множеством методов для работы с уникальными элементами, например difference - возвращает элементы сета отсутствующие в другом сете, intersection - наоборот, возвращает елементы сета присутствующие в другом сете.
Иногда может возникнуть необходимость преобразовать один тип данных в другой. Для этого существуют специальные встроенные функции Python. Вот некоторые из них:
Функция |
Описание |
int(x [,base]) |
Преобразовывает х в целое число. Например, int(12.4) -> 12 |
long(x [,base] ) |
Преобразовывает х в long. Например, long(20) -> 20L |
float(x) |
Преобразовывает х в число с плавающей точкой. Например float(10) -> 10.0 |
complex(real [,imag]) |
Создает комплексное число. Например complex(20) -> (20+0j) |
str(x) |
Преобразовывает х в строку. Например str(10) -> '10' |
tuple(s) |
Преобразовывает s в кортеж. Например tuple("hello") -> ( "h","e","l","l","o" ) |