Освоение типов данных в Python: практическое руководство
Типы данных в Python
Это руководство проведет вас через основные типы данных в Python, иллюстрируя, как они работают и как преобразовывать их друг в друга.
Типы данных в Python
Каждое значение в Python — это объект, а каждый объект является экземпляром класса, определяющего его тип. Понимание этих типов необходимо для написания понятного, эффективного и надежного кода.
Ниже мы рассмотрим наиболее часто используемые типы данных: числа, списки, кортежи, строки, множества и словари.
Числа в Python
Числовые типы Python включают int, float и complex. Используйте type() для проверки класса значения и isinstance() для проверки принадлежности к иерархии классов.
a = 5
print(a, "is of type", type(a))
a = 2.0
print(a, "is of type", type(a))
a = 1+2j
print(a, "is complex number?", isinstance(1+2j, complex))
Вывод
5 is of type <class 'int'> 2.0 is of type <class 'float'> (1+2j) is complex number? True
Целые числа могут быть произвольно большими, ограниченными только доступной памятью. Числа с плавающей точкой точны примерно до 15 десятичных знаков; например, 1 — целое, а 1.0 — float.
Комплексные числа имеют форму x + yj, где x — вещественная часть, а y — мнимая. Примеры значений:
>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)
Float b был усечен для соответствия пределам точности.
Список в Python
Списки — упорядоченные, изменяемые последовательности, которые могут содержать элементы любого типа. Объявляются квадратными скобками, элементы разделены запятыми:
a = [1, 2.2, 'python']
Используйте срезы для получения подсписков. Индексы начинаются с нуля:
a = [5,10,15,20,25,30,35,40]
print("a[2] = ", a[2])
print("a[0:3] = ", a[0:3])
print("a[5:] = ", a[5:])
Вывод
a[2] = 15 a[0:3] = [5, 10, 15] a[5:] = [30, 35, 40]
Списки изменяемы; элементы можно переназначать:
a = [1, 2, 3]
a[2] = 4
print(a)
Вывод
[1, 2, 4]
Кортеж в Python
Кортежи — упорядоченные, но неизменяемые. Они часто используются для защиты данных и могут предлагать небольшие преимущества в производительности над списками, так как их размер не может меняться. Определяются круглыми скобками:
t = (5,'program', 1+3j)
Срезы работают, но переназначение вызывает ошибку:
t = (5,'program', 1+3j)
print("t[1] = ", t[1])
print("t[0:3] = ", t[0:3])
# t[0] = 10 # вызовет TypeError
Вывод
t[1] = program t[0:3] = (5, 'program', (1+3j))
Строки в Python
Строки — неизменяемые последовательности символов Unicode. Используйте одинарные или двойные кавычки; тройные кавычки позволяют многострочные литералы.
s = "This is a string"
print(s)
s = '''A multiline string'''
print(s)
Вывод
This is a string A multiline string
Срезы работают, но попытка изменить символ вызывает ошибку:
s = 'Hello world!'
print("s[4] = ", s[4])
print("s[6:11] = ", s[6:11])
# s[5] = 'd' # вызовет TypeError
Вывод
s[4] = o s[6:11] = world
Множество в Python
Множество — неупорядоченная коллекция уникальных элементов, определяемая фигурными скобками. Множества автоматически устраняют дубликаты и поддерживают операции объединения и пересечения.
a = {5,2,3,1,4}
print("a = ", a)
print(type(a))
Вывод
a = {1, 2, 3, 4, 5}
<class 'set'>
Дубликаты удаляются автоматически:
a = {1,2,2,3,3,3}
print(a)
Вывод
{1, 2, 3}
Поскольку множества неупорядочены, индексация и срезы не поддерживаются.
Словарь в Python
Словари хранят пары ключ-значение и сильно оптимизированы для поиска по ключу. Ключи и значения могут быть любого хешируемого типа.
d = {1:'value','key':2}
print(type(d))
print("d[1] = ", d[1])
print("d['key'] = ", d['key'])
# print("d[2] = ", d[2]) # вызовет KeyError
Вывод
<class 'dict'> d[1] = value d['key'] = 2
Преобразование между типами данных
Python предоставляет встроенные конструкторы для преобразования типов: int(), float(), str() и др. Преобразование float в int усекает в сторону нуля.
float(5) # 5.0
int(10.6) # 10
int(-10.6) # -10
Строковые преобразования требуют совместимых представлений:
float('2.5') # 2.5
str(25) # '25'
# int('1p') # ValueError
Последовательности можно конвертировать друг в друга:
set([1,2,3]) # {1, 2, 3}
tuple({5,6,7}) # (5, 6, 7)
list('hello') # ['h', 'e', 'l', 'l', 'o']
Для создания словаря из итерируемого объекта пар:
dict([[1,2],[3,4]]) # {1: 2, 3: 4}
dict([(3,26),(4,44)]) # {3: 26, 4: 44}
Python
- Мастерство C# переменных и примитивных типов данных: полное руководство
- Понимание типов данных C++: основы, модификаторы и лучшие практики
- Типы данных в C: int, float, char и другие — полное руководство
- Мастерство преобразования типов в Python: Полное руководство
- Мастерство операторов Python: Полное руководство
- Оператор pass в Python: практическое руководство
- 5 моделей центров обработки данных: дизайн, кейсы и примеры
- Восемь ключевых моделей облачных вычислений 2021 года
- 8 распространённых типов утечек данных — реальные примеры и последствия
- Типы данных в C: полное руководство по целочисленным, вещественным и производным типам