Введение
В Python встроено много очень полезных объектов.В этой статье будут представлены встроенные функции, встроенные константы, встроенные типы и встроенные исключения в Python.
встроенная функция
Интерпретатор Python имеет встроенные функции и типы, которые вы можете использовать в любое время.
| встроенная функция | ||||
|---|---|---|---|---|
| abs() | delattr() | hash() | memoryview() | set() |
| all() | dict() | help() | min() | setattr() |
| any() | dir() | hex() | next() | slice() |
| ascii() | divmod() | id() | object() | sorted() |
| bin() | enumerate() | input() | oct() | staticmethod() |
| bool() | eval() | int() | open() | str() |
| breakpoint() | exec() | isinstance() | ord() | sum() |
| bytearray() | filter() | issubclass() | pow() | super() |
| bytes() | float() | iter() | print() | tuple() |
| callable() | format() | len() | property() | type() |
| chr() | frozenset() | list() | range() | vars() |
| classmethod() | getattr() | locals() | repr() | zip() |
| compile() | globals() | map() | reversed() | __import__() |
| complex() | hasattr() | max() | round() |
встроенные константы
В Python встроено небольшое количество констант, и мы можем использовать их непосредственно в нашем коде.
- False
Представляет ложное значение типа bool.
- True
Представляет значение истинности типа bool.
- None
является уникальным значением типа NoneType. None означает отсутствующее значение.
- NotImplemented
да__eq__(), __lt__(), __add__(), __rsub__()Специальное возвращаемое значение , указывающее, что оно будет возвращено, когда falseNotImplemented.
- Ellipsis
эквивалентно буквальному…, в основном используемый в сочетании с расширенным синтаксисом слайсов для определяемых пользователем типов данных контейнера.
__debug__
Переменная внутри компилятора, указывающая, включен ли режим отладки.
встроенный тип
Основными встроенными типами в python являются числа, последовательности, карты, классы, экземпляры и исключения.
Обнаружение логического значения
В python любой объект может выполнять логическое определение значения.
Объект считается истинным по умолчанию, если только его класс-владелец не определяет, когда вызывается объект.__bool__()метод и возвратFalseили определить__len__()метод и возвращает ноль.
Ниже приведен набор объектов, которые считаются ложными значениями:
- Константы, определенные как ложные значения:
NoneиFalse. - Ноль любого числового типа:
0,0.0,0j,Decimal(0),Fraction(0, 1) - Пустые последовательности и наборы полиномов:
'',(),[],{},set(),range(0)
Логические операции над логическими значениями
Логические операции в основном включают или, не и и:
| операция | результат |
|---|---|
x or y |
if x is false, then y, else x |
x and y |
if x is false, then x, else y |
not x |
if x is false, then True, else False
|
операция сравнения
| операция | значение |
|---|---|
< |
строго меньше чем |
<= |
меньше или равно |
> |
строго больше, чем |
>= |
больше или равно |
== |
равный |
!= |
не равно |
is |
Идентификатор объекта |
is not |
Отрицательный идентификатор объекта |
Экземпляры классов с разными идентификаторами сравниваются как неравные, если класс не определяет__eq__()метод.
Тип номера
В Python существует три разных типа данных:целое число, число с плавающей запятойимножественное число.
Все числовые типы (кроме комплексных чисел) поддерживают следующие операции:
| операция | результат |
|---|---|
x + y |
xиyсумма |
x - y |
xиyразница |
x * y |
xиyпродукт |
x / y |
xиyчастное |
x // y |
xиyчастное от |
x % y |
x / yостаток от |
-x |
xотрицать |
+x |
xпостоянный |
abs(x) |
xабсолютное значение или величина |
Следующие операции также поддерживаются для int и float:
| операция | результат |
|---|---|
math.trunc(x) |
xусечено доIntegral
|
Round(x[, n]) |
xокруглить доnдесятичных разрядов, полузначения округляются до четного числа. если опущеноn, по умолчанию 0. |
math.floor(x) |
Integral |
math.ceil(x) |
>= наименьшее из хIntegral
|
Побитовые операции над целыми типами
Для целых чисел также поддерживаются побитовые операции:
| операция | результат |
|---|---|
| `x | y` |
x ^ y |
xиyпобитовыйисключающее ИЛИ |
x & y |
xиyпобитовыйи |
x << n |
xсдвиг влевоnнемного |
x >> n |
xпереместить вправоnнемного |
~x |
xбитовое отрицание |
Дополнительные методы для целочисленных типов
int имеет несколько дополнительных методов:
int.bit_length()
Возвращает количество битов, необходимых для представления целого числа в двоичном виде, исключая знаковый бит и начальные нули:
>>> n = -37
>>> bin(n)
'-0b100101'
>>> n.bit_length()
6
int.to_bytes(length, byteorder, *, signed=False)
Возвращает массив байтов, представляющий целое число.
(1024).to_bytes(2, byteorder='big')
b'\x04\x00'
(1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
(-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
x = 1000
x.to_bytes((x.bit_length() + 7) // 8, byteorder='little')
b'\xe8\x03'
byteorderПараметр определяет порядок байтов, используемый для представления целых чисел. еслиbyteorderза"big", старший байт помещается в начало массива байтов. еслиbyteorderза"little", старший байт помещается в конец массива байтов.
signedПараметр определяет, следует ли использовать дополнение до двух для представления целых чисел.
Дополнительные методы для типов с плавающей запятой
float.is_integer()
Возвращает, может ли экземпляр с плавающей запятой быть представлен конечным целым числомTrue, иначе возвратFalse:
>>> (-2.0).is_integer()
True
>>> (3.2).is_integer()
False
float.hex()
Возвращает представление с плавающей запятой в виде шестнадцатеричной строки.
итератор
Итераторы в основном используются при обходе контейнеров.
Если контейнеру необходимо обеспечить поддержку итерации, должны быть определены следующие методы:
container.__iter__()
Этот метод возвращает объект итератора. Этот объект итератора должен предоставлять следующие два метода:
iterator.__iter__()
Возвращает сам объект итератора.
iterator.__next__()
Возвращает следующий элемент из контейнера.
тип последовательности
Существует три основных типа последовательности: список, кортеж и диапазон объектов.
Ниже приведены общие операции последовательности:
| операция | результат |
|---|---|
x in s |
еслиsчто-то равноеxтогда результатTrue, в противном случаеFalse
|
x not in s |
еслиsчто-то равноеxтогда результатFalse, в противном случаеTrue
|
s + t |
sиtсоединение |
s * nилиn * s
|
эквивалентноsсам с собойnвторичный сплайсинг |
s[i] |
sПервыйiэлемент, начиная с 0 |
s[i:j] |
sотiприбытьjкусок |
s[i:j:k] |
sотiприбытьjРазмер шагаkкусок |
len(s) |
sдлина |
min(s) |
sминимальный срок |
max(s) |
sмаксимальный срок |
s.index(x[, i[, j]]) |
xсуществуетsНомер индекса первого вхождения элемента в (номер индекса вiили позже и вjДо) |
s.count(x) |
xсуществуетsобщее количество случаев в |
Операции с изменяемыми типами последовательностей:
| операция | результат |
|---|---|
s[i] = x |
будетsПервыйiэлемент заменен наx |
s[i:j] = t |
будетsотiприбытьjЗамените срез итерируемого объекта итерируемым объектомtСодержание |
del s[i:j] |
Эквивалентноs[i:j] = []
|
s[i:j:k] = t |
будетs[i:j:k]элементы заменены наtЭлементы |
del s[i:j:k] |
удалить из спискаs[i:j:k]Элементы |
s.append(x) |
будетxдо конца последовательности (эквивалентноs[len(s):len(s)] = [x]) |
s.clear() |
отsудалить все элементы из (эквивалентноdel s[:]) |
s.copy() |
Создайтеsповерхностная копия (эквивалентнаяs[:]) |
s.extend(t)илиs += t
|
использоватьtрасширение содержанияs(в основном эквивалентноs[len(s):len(s)] = t) |
s *= n |
использоватьsсодержание повторяетсяnобновить его |
s.insert(i, x) |
черезiДанная позиция индекса будетxвставлятьs(эквивалентноs[i:i] = [x]) |
s.pop([i]) |
извлечено вiэлемент в позиции и измените его сsудалено в |
s.remove(x) |
Удалитьsпервый вs[i]равныйxс проект. |
s.reverse() |
Инвертируйте элементы в списке на месте. |
Типы последовательностей включают списки, кортежи, объекты диапазона и текстовые последовательности str.
Здесь мы сосредоточимся на методе str:
| операция | результат |
|---|---|
str.capitalize() |
Возвращает копию исходной строки с первым символом в верхнем регистре и остальными в нижнем регистре. |
str.casefold() |
Возвращает нейтрализованную по регистру копию исходной строки. Строки без учета регистра можно использовать для совпадений без учета регистра. |
| str.center(width[, fillchar]) | Длина возвратаwidthстрока с исходной строкой в центре. использовать указанныйfillcharЗаполните пробелы с обеих сторон (по умолчанию используются символы пробела ASCII). еслиwidthменьше или равноlen(s)Возвращается копия исходной строки. |
str.count(sub[, start[, end]]) |
вернуть подстрокуsubсуществует [start, end] Количество непересекающихся вхождений в диапазоне. необязательный параметрstartиendбудет интерпретироваться как обозначение среза. |
str.encode(encoding="utf-8", errors="strict") |
Возвращает версию исходной строки, закодированную как объект bytes. Кодировка по умолчанию — «utf-8». Значение ошибок по умолчанию — «строгое», что означает, что ошибки кодирования вызывают ошибку UnicodeError. Другие доступные значения: «игнорировать», «заменить», «xmlcharrefreplace», «backslashreplace» и любое другое значение, зарегистрированное через codecs.register_error(). |
str.endswith(suffix[, start[, end]]) |
Если строка начинается с указанногоsuffixконец возвратаTrue, иначе возвратFalse.suffixТакже может быть кортежем из нескольких суффиксов для поиска. |
str.expandtabs(tabsize=8) |
Возвращает копию строки, в которой все табуляции заменены одним или несколькими пробелами, в зависимости от текущей позиции столбца и заданной ширины табуляции. |
| str.find(sub[, start[, end]]) | вернуть подстрокуsubсуществуетs[start:end]Наименьший индекс, найденный в срезе. |
| str.format(args*, kwargs) | Выполнение операций форматирования строк. |
str.format_map(mapping) |
Аналогичен str.format(**mapping), за исключением того, что сопоставление используется напрямую, а не копируется в словарь. |
str.index(sub[, start[, end]]) |
Подобно найти (), но повышает ValueError, когда подклассы не найдены. |
str.isalnum() |
Возвращает, если все символы в строке являются буквами или цифрами и есть хотя бы один символTrue, иначе возвратFalse. |
| str.isalpha() | Если все символы в строке являются буквами и есть хотя бы один символ, вернутьTrue, иначе возвратFalse. |
| str.isascii() | Возвращает, если строка пуста или все символы в строке ASCIITrue, иначе возвратFalse. |
| str.isdecimal() | Возвращает, если все символы в строке являются десятичными символами и в строке есть хотя бы один символ.True, иначе возвратFalse. |
str.isdigit() |
Если все символы в строке являются числами и есть хотя бы один символ, вернутьTrue, иначе возвратFalse. |
str.isidentifier() |
Если строка является допустимым идентификатором, вернутьTrue
|
str.islower() |
Возвращает True, если в строке есть хотя бы один символ, чувствительный к регистру, и все такие символы в нижнем регистре, в противном случае — False. |
str.isnumeric() |
Возвращает, если в строке есть хотя бы один символ и все символы являются цифрами.True, иначе возвратFalse. |
| str.isprintable() | Возвращает, если все символы в строке доступны для печати или строка пуста.True, иначе возвратFalse. |
| str.isspace() | Возвращает, если в строке есть только пробельные символы и хотя бы один символTrue, иначе возвратFalse. |
str.istitle() |
Возвращает True, если в строке есть хотя бы один символ, и это строка заголовка, например, за символами в верхнем регистре могут следовать только не заглавные символы, а символам в нижнем регистре должен предшествовать символ в верхнем регистре. В противном случае вернуть False. |
| str.isupper() | Возвращает True, если в строке есть хотя бы один символ с учетом регистра 4, и все такие символы в верхнем регистре, в противном случае — False. |
| str.join(iterable) | возвращаетiterableСтрока, объединенная из строк в . |
str.ljust(width[, fillchar]) |
Длина возвратаwidthСтрока, в которой исходная строка выровнена по левому краю. |
str.lower() |
Возвращает копию исходной строки, в которой все символы, чувствительные к регистру, преобразованы в нижний регистр. |
str.lstrip([chars]) |
Возвращает копию исходной строки с удаленными начальными символами. |
str.partition(sep) |
существуетsepРазбивает строку при первом вхождении, возвращая тройку, содержащую часть до разделителя, сам разделитель и часть после разделителя. |
| str.removeprefix(prefix, /) | если строка начинается спрефиксначало строки, возвратstring[len(prefix):]. В противном случае вернуть копию исходной строки |
str.removesuffix(suffix, /) |
если строка начинается ссуффиксконец строки исуффиксненулевой, возвратstring[:-len(suffix)]. В противном случае вернуть копию исходной строки |
| str.replace(old, new[, count]) | Возвращает копию строки со всеми вхождениями в нее подстрокoldбудет заменен наnew. Если указаны необязательные аргументыcount, то только заменить передcountпоявляться. |
str.rfind(sub[, start[, end]]) |
вернуть подстрокуsubсамый большой (самый правый) индекс, найденный в строке, такой, чтоsubбудет включено вs[start:end]среди. |
str.rindex(sub[, start[, end]]) |
Подобно rfind(), но вызывает ValueError, если подстрока не найдена. |
| str.rjust(width[, fillchar]) | Длина возвратаwidthСтрока, в которой исходная строка выровнена по правому краю. |
| str.rpartition(sep) | существуетsepРазбивает строку в позиции последнего вхождения, возвращая тройку, содержащую часть до разделителя, сам разделитель и часть после разделителя. Если разделитель не найден, возвращенная тройка содержит две пустые строки и саму строку. |
str.rsplit(sep=None, maxsplit=-1) |
Чтобы вернуть список слов в строке, используйтеsepкак строка с разделителями. если даноmaxsplit, то самое большееmaxsplitраскол, отКрайний справаНачинать. |
str.rstrip([chars]) |
Возвращает копию исходной строки с удаленными завершающими символами. |
| str.split(sep=None, maxsplit=-1) | Чтобы вернуть список слов в строке, используйтеsepкак строка с разделителями. если даноmaxsplit, то самое большееmaxsplitразбивается (поэтому список будет иметь не болееmaxsplit+1элементы). еслиmaxsplitне указано или-1, количество сплитов не ограничено (делаются все возможные сплиты). |
| str.splitlines([keepends]) | Возвращает список строк в исходной строке, разделенных границами строк. Границы строк не включаются в результирующий список, если они не указаныkeependsи является истинной ценностью. |
| str.startswith(prefix[, start[, end]]) | Если строка начинается с указанногоprefixначать и вернутьсяTrue, иначе возвратFalse.prefixТакже может быть кортежем из нескольких префиксов для поиска. если есть вариантstart, проверка начнется в указанном месте. если есть вариантend, остановит сравнение в указанной позиции. |
str.strip([chars]) |
Возвращает копию исходной строки с удаленными начальными и конечными символами.charsАргумент представляет собой строку, определяющую удаляемые символы. если опущено илиNone,ноcharsПараметр по умолчанию удаляет пробелы. ФактическиcharsВ параметрах не указывается ни один префикс или суффикс, вместо этого удаляются все комбинации значений параметров: |
| str.swapcase() | Возвращает копию исходной строки с преобразованием символов верхнего регистра в нижний регистр и наоборот. |
str.title() |
Возвращает заглавную версию исходной строки, где первая буква каждого слова заглавная, а остальные строчные. |
str.upper() |
Возвращает копию исходной строки, в которой все символы, чувствительные к регистру, преобразованы в верхний регистр. |
str.zfill(width) |
Возвращает копию исходной строки, дополненную ASCII слева'0'Цифры составляют его длину доwidth. положительные и отрицательные префиксы ('+'/'-') обрабатывается в положительных и отрицательных знакахпослеЗаполнить вместо перед. еслиwidthменьше или равноlen(s)Возвращается копия исходной строки. |
Также включены несколько типов двоичных последовательностей:bytes, bytearray, memoryview.
Объект bytes представляет собой неизменяемую последовательность одиночных байтов.
Синтаксис для представления байтового литерала примерно такой же, как и для строкового литерала, за исключением того, чтоbпрефикс.
объекты bytearraybytesИзменяемый аналог объекта. Объекты Bytearray не имеют определенного литерального синтаксиса, они всегда создаются путем вызова конструктора.
Давайте рассмотрим основные операции с байтами и массивом байтов:
| операция | описывать |
|---|---|
| bytearray.count(sub[, start[, end]]) | вернуть подпоследовательностьsubсуществует [start, end] Количество непересекающихся вхождений в диапазоне. необязательный параметрstartиendбудет интерпретироваться как обозначение среза. |
| bytearray.removeprefix(prefix, /) | Если двоичные данные начинаются спрефиксначало строки, возвратbytes[len(prefix):]. В противном случае верните копию исходных двоичных данных. |
| bytearray.removesuffix(suffix, /) | Если двоичные данные начинаются ссуффиксконец строки исуффиксненулевой, возвратbytes[:-len(suffix)]. В противном случае верните копию исходных двоичных данных. |
| bytearray.decode(encoding="utf-8", errors="strict") | Возвращает строку, декодированную из заданных байтов. Кодировка по умолчанию'utf-8'. |
| bytearray.endswith(suffix[, start[, end]]) | Если двоичные данные начинаются с указанногоsuffixвернуться, когда закончитеTrue, иначе возвратFalse. |
| bytearray.find(sub[, start[, end]]) | вернуть подпоследовательностьsubнаименьший индекс, найденный в данных,subвключено в срезs[start:end]в пределах. |
| bytearray.index(sub[, start[, end]]) | Аналогичен find(), но вызывает ValueError, если подпоследовательность не найдена. |
| bytearray.join(iterable) | возвращаетiterableОбъект bytes или bytearray, объединенный из последовательности двоичных данных в формате . |
| bytearray.maketrans(from, to) | Возвращает таблицу перевода, которую можно использовать с bytes.translate(), которая сопоставит каждый символ в from с символом в той же позиции в to; как from, так и to должны быть байтовыми объектами и иметь одинаковую длину. |
| bytearray.partition(sep) | существуетsepРазбивает последовательность при первом появлении, возвращая 3-кортеж, содержащий часть до разделителя, сам разделитель или его копию массива байтов и часть после разделителя. |
| bytearray.replace(old, new[, count]) | Возвращает копию последовательности со всеми вхождениями подпоследовательностейoldбудет заменен наnew. Если указаны необязательные аргументыcount, то только заменить передcountпоявляться. |
| bytearray.rfind(sub[, start[, end]]) | вернуть подпоследовательностьsubсамый большой (самый правый) индекс, найденный в последовательности, такой, чтоsubбудет включено вs[start:end]среди. необязательный параметрstartиendбудет интерпретироваться как обозначение среза. возврат, если не найден-1. |
| bytearray.rindex(sub[, start[, end]]) | Подобно rfind(), но вызывает ValueError, если подпоследовательность не найдена. |
| bytearray.rpartition(sep) | существуетsepРазбивает последовательность в позиции последнего вхождения, возвращая 3-кортеж, содержащий часть до разделителя, сам разделитель или его копию массива байтов и часть после разделителя. |
| bytearray.startswith(prefix[, start[, end]]) | Если двоичные данные начинаются с указанногоprefixвернуться в началоTrue, иначе возвратFalse. |
| bytearray.translate(table, /, delete=b'') | Возвращает копию исходного объекта bytes или bytearray со всеми удаленными необязательными аргументами.deleteбайтов, оставшиеся байты будут отображены через заданную таблицу преобразования, которая должна быть объектом bytes длиной 256. |
| bytearray.center(width[, fillbyte]) | Возвращает копию исходного объекта, центрированную в пределах последовательности длины ширины и заполненную указанным байтом заполнения с обеих сторон (по умолчанию используются пробелы ASCII). Для байтовых объектов возвращается копия исходной последовательности, если ширина меньше или равна len(s). |
| bytearray.ljust(width[, fillbyte]) | Возвращает копию исходного объекта в длинуwidthвыровнены по левому краю в последовательности. |
| bytearray.lstrip([chars]) | Возвращает копию исходной последовательности с удаленными указанными начальными байтами. |
| bytearray.rjust(width[, fillbyte]) | Возвращает копию исходного объекта в длинуwidthвыровнены по правому краю в последовательности. |
| bytearray.rsplit(sep=None, maxsplit=-1) | Чтобы разбить двоичную последовательность на подпоследовательности того же типа, используйтеsepкак разделитель. |
| bytearray.rstrip([chars]) | Возвращает копию исходной последовательности с удаленными указанными завершающими байтами. |
| bytearray.split(sep=None, maxsplit=-1) | Чтобы разбить двоичную последовательность на подпоследовательности того же типа, используйтеsepкак разделитель. |
| bytearray.strip([chars]) | Возвращает копию исходной последовательности с удаленными указанными начальными и конечными байтами. |
| bytearray.capitalize() | Возвращает копию исходной последовательности, где каждый байт будет интерпретироваться как символ ASCII, причем первый байт символов прописной, а остальные строчные. Значения байтов, отличных от ASCII, останутся без изменений. |
| bytearray.expandtabs(tabsize=8) | Возвращает копию последовательности, в которой все вкладки ASCII заменены одним или несколькими пробелами ASCII, в зависимости от текущей позиции столбца и заданной ширины вкладки. |
| bytearray.isalnum() | Возвращает, если все байты в последовательности являются буквенными символами ASCII или десятичными цифрами ASCII, и последовательность не пуста.True, иначе возвратFalse. |
| bytearray.isalpha() | Возвращает, если все байты в последовательности являются буквенными символами ASCII и последовательность не пуста.True, иначе возвратFalse. |
| bytearray.isascii() | Возвращает, если последовательность пуста или все байты в последовательности являются байтами ASCII.True, иначе возвратFalse. |
| bytearray.isdigit() | Возвращает, если все байты в последовательности являются десятичными цифрами ASCII и последовательность не пуста.True, иначе возвратFalse. |
| bytearray.islower() | Возвращает, если в последовательности есть хотя бы один символ ASCII нижнего регистра и нет символов ASCII верхнего регистра.True, иначе возвратFalse. |
bytearray.isspace() |
Возвращает, если все байты в последовательности являются пробелами ASCII и последовательность не пуста.True, иначе возвратFalse. |
| bytearray.istitle() | Возвращает, если последовательность находится в заглавном регистре ASCII и последовательность не пуста.True, иначе возвратFalse. |
| bytearray.isupper() | Возвращает, если в последовательности есть хотя бы один символ ASCII в верхнем регистре и нет символов ASCII в нижнем регистре.True, иначе возвратFalse. |
| bytearray.lower() | Возвращает копию исходной последовательности, в которой все символы ASCII верхнего регистра преобразованы в соответствующие символы нижнего регистра. |
| bytearray.splitlines(keepends=False) | Возвращает список строк исходной двоичной последовательности, разделенных границами строк ASCII. |
| bytearray.swapcase() | Возвращает копию исходной последовательности со всеми символами ASCII нижнего регистра, преобразованными в их аналоги верхнего регистра, и наоборот. |
| bytearray.title() | Возвращает заглавную версию исходной двоичной последовательности, где каждое слово начинается с символа ASCII в верхнем регистре, а остальные буквы — в нижнем регистре. Значения байтов без учета регистра оставляются как есть. |
| bytearray.upper() | Возвращает копию исходной последовательности, в которой все символы ASCII нижнего регистра преобразованы в соответствующие им символы верхнего регистра. |
| bytearray.zfill(width) | Возвращает копию исходной последовательности, дополненную слеваb'0'Цифры составляют длину последовательности какwidth. положительные и отрицательные префиксы (b'+'/ b'-') обрабатывается в положительных и отрицательных знакахпослеЗаполнить вместо перед. |
Объект memoryview позволяет коду Python получать доступ к внутренним данным объекта без создания копии, если объект поддерживает протокол буфера.
obj должен поддерживать протокол буфера. Встроенные объекты, поддерживающие протокол буфера, включают байты и массив байтов.
Тип коллекции
Коллекции хранят уникальные данные. В основном есть два типа: набор и замороженный набор.
Тип набора является изменяемым — его содержимое можно изменить с помощью таких методов, как add() и remove(). Будучи изменяемым типом, он не имеет хеш-значения и не может использоваться в качестве ключа словаря или другого элемента коллекции.
Тип замороженного набора является неизменяемым и хешируемым — его содержимое нельзя изменить после его создания, поэтому его можно использовать как ключ словаря или другой элемент множества.
Взгляните на основные операции коллекций:
| операция | описывать |
|---|---|
| len(s) | возврат коллекцииsколичество элементов в (т.е.sбаза). |
| x in s | обнаружитьxЭтоsЧлены . |
| x not in s | обнаружитьxЭто неsЧлены . |
| isdisjoint(other) | Если коллекция не соответствуетotherвозвращаются общие элементыTrue. Два множества являются непересекающимися множествами тогда и только тогда, когда их пересечение является пустым множеством. |
| issubset(other) или set | Проверьте, находится ли каждый элемент в коллекции вotherсреди. |
| set < other | Проверьте, есть ли коллекцияotherПравильное подмножество , т.е.set <= other and set != other. |
| issuperset(other) или set >= other | Проверить, еслиotherКаждый элемент находится в наборе. |
| set > other | Проверьте, есть ли коллекцияotherистинный супермножествоset >= other and set != other. |
| union(*others) или set | other | ... | Возвращает новую коллекцию, содержащую элементы из исходной коллекции и всех коллекций, указанных другими. |
| пересечение (*другие) или набор & другие & ... | Возвращает новую коллекцию, содержащую элементы, общие для исходной коллекции и всех коллекций, указанных другими. |
| разность(*другие) или набор - другое - ... | Возвращает новый набор, содержащий элементы из исходного набора, которых нет в другом наборе, заданном другими. |
| симметричная_разница (другое) или установить ^ другое | Возвращает новую коллекцию, элементы которой либо принадлежат исходной коллекции, либо принадлежатotherуказаны другие наборы, но не оба. |
| copy() | Возвращает неглубокую копию исходной коллекции. |
тип карты
Тип картирования Python Dict. Пока Hashable объект Dict можно использовать в качестве ключа.
Словари можно создавать несколькими способами:
- Используйте фигурные скобки для разделения запятыми
键: 值Правильно:{'jack': 4098, 'sjoerd': 4127}or{4098: 'jack', 4127: 'sjoerd'} - Используйте понимание словаря:
{},{x: x ** 2 for x in range(10)} - Используйте конструктор типа:
dict(),dict([('foo', 100), ('bar', 200)]),dict(foo=100, bar=200)
Если позиционные аргументы не указаны, будет создан пустой словарь.
Операции со словарем:
| операция | описывать |
|---|---|
| list(d) | вернуть словарьdСписок всех ключей, используемых в . |
| len(d) | вернуть словарьdколичество предметов в . |
| d[key] | возвращениеdКитай и Израильkeyпредмет для ключа. |
| d[key] = value | будетd[key]установить какvalue. |
| del d[key] | будетd[key]отdудалено в. |
| key in d | еслиdключ существует вkeyзатем вернутьсяTrue, иначе возвратFalse. |
| key not in d | Эквивалентноnot key in d. |
| iter(d) | Возвращает итератор по ключам словаря. Этоiter(d.keys())ярлык. |
clear() |
Удалить все элементы из словаря. |
copy() |
Возвращает неглубокую копию исходного словаря. |
get(key[, default]) |
еслиkeyВозвращает, если он существует в словареkeyзначение, иначе возвратdefault. еслиdefaultЕсли не указано, по умолчанию используетсяNone
|
items() |
Возвращает новое представление, состоящее из ключей словаря. |
pop(key[, default]) |
еслиkeyЕсли он существует в словаре, удалите его и верните его значение, иначе вернитеdefault. |
popitem() |
удалить из словаря и вернуть(键, 值)правильно. Пары ключ-значение возвращаются в порядке LIFO. |
| reversed(d) | Возвращает итератор, который извлекает ключи словаря в обратном порядке. Этоreversed(d.keys())ярлык. |
setdefault(key[, default]) |
Если в словаре есть ключиkey, который возвращает свое значение. Если он не существует, вставленное значениеdefaultключkey, и вернутьсяdefault.defaultПо умолчаниюNone. |
update([other]) |
использовать отotherПары ключ/значение обновляют словарь, перезаписывая исходные ключи. возвращениеNone. |
values() |
Возвращает новое представление, состоящее из значений словаря. |
| d | other | сливатьсяdиotherчтобы создать новый словарь с ключами и значениями, оба должны быть словарями. когдаdиotherКогда есть одинаковые ключи,otherзначение имеет приоритет. |
| d |= other | Обновите словарь d с помощью ключей и значений других, которые могут быть сопоставлением или итерируемой парой ключ-значение. Когда d и other имеют один и тот же ключ, значение other имеет приоритет. |
объект просмотра словаря
Объекты, возвращаемые dict.keys(), dict.values() и dict.items(), являются объектами представления. Этот объект обеспечивает динамическое представление записей словаря, что означает, что при изменении словаря соответственно изменяется и представление.
Представления словаря можно повторять для получения соответствующих данных и поддержки проверки элементов:
| операция | описывать |
|---|---|
| len(dictview) | Возвращает количество записей в словаре. |
| iter(dictview) | Возвращает ключ, значение или элемент словаря (начиная с(键, 值)итератор, представляющий кортеж элементов). |
| x in dictview | еслиxключ, значение или элемент, присутствующий в соответствующем словаре (в последнем случаеxдолжно быть(键, 值)кортеж), затем возвратTrue. |
| reversed(dictview) | Возвращает итератор, который извлекает ключи, значения или элементы словаря в обратном порядке. Представления будут повторяться в порядке, обратном вставке. |
встроенное исключение
Все исключения в Python исходят от BaseException.Давайте посмотрим на иерархию встроенных исключений:
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StopAsyncIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
Эта статья была включена вWoohoo.freudpress.com/11-Python-i…
Самая популярная интерпретация, самая глубокая галантерея, самые краткие уроки и множество трюков, о которых вы не знаете, ждут вас!
Добро пожаловать, чтобы обратить внимание на мой официальный аккаунт: «Программируйте эти вещи», разбирайтесь в технологиях, лучше поймите себя!