b"00/01/42"
rb"00/21/41/42"
"encode".encode("ascii")
s = "мир".encode("utf16")
s.decode("ascii")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
s.decode("utf8", "replace")
import sys
sys.getdefaultencoding()
file = open("Lecture 4.html", "rb")
file.read(42) #указываем сколько символов хотим прочитать
file.readline(2)
file.readlines()[:10]
file.fileno() # возвращает файловый дескриптор
file.tell() # возвращает позицию, на которой мы находимся в файле
file.seek(42) # указываем позицию с которой будем продолжать читать
file.flush() # форсируем запись буфера в файл
file.close() # закрываем поток чтения-записи у файла
s = input("Write pls ")
print("Hi, from std.output", file=sys.stdout)
print("Hi, from std.error", file=sys.stderr)
point = 4,2 # маркером котрежа является запятая и скобочки, и скобочки можно опускать для читаемости
x, y = point # распаковка значений из кортежа
x
ls = [1,2,3,4,5,6,7]
one_two = slice(0,2)
two_last= slice(2, None)
ls[one_two]
ls[two_last]
ls[::-1]
list(reversed(ls))
ls.reverse()
ls
%%timeit
ls[::-1]
%%timeit
reversed(ls)
from collections import namedtuple
# импортируем из вспомагательного модуля именованные кортежи
# создаем кортеж с именованными полями X и Y
Point = namedtuple("Point", ["X", "Y"])
point = Point(X=42, Y=24) # создаем новый именованный кортеж, инициализируем поля
point._fields # можно узнать какие поля есть в кортеже
point.X # доступ к полю кортежа
point._replace(X=24)
point._asdict()
x = [1,2,3]
x.append(4)
x
x.pop(3)
x
from collections import deque
deq = deque()
deq.appendleft(42)
deq
deq.append(24)
deq
deq.popleft()
deq
deq.pop()
deq
lt = [1,2,3,4,5,6,10,2020,222,2,3,4,5]
lt.sort()
lt
lt = [1,2,3,4,5,6,10,2020,222,2,3,4,5]
sorted(lt)
sorted(lt, key=lambda x: x%2 ==0, reverse=True)
x, y, z = {1,2}, {3,4,5,6}, {6,7,8}
x_y_z = x.union(y,z)
x_y_z
y.intersection(z)
x.difference(y,z)
x.update([42])
x
# конструктор словаря dict
d = dict(foo=42)
d
# конструктор словаря с копированием и добавлением
dict(d, baz=24)
%%timeit
d = {"foo": 42}
59.6 ns ± 1.23 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%%timeit
d = dict(foo=42)
218 ns ± 15.5 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
# создать словарь из списка ключей,значения будут заполнены None
dict.fromkeys(["foo", "bar"])
dict.fromkeys(["foo", "bar"], 42)
%%timeit
d = dict.fromkeys(["foo", "bar"], 42)
%%timeit
d = {x:42 for x in ["foo", "bar"]}
d.values() # вернет все значения словаря
d.keys() # вернет все ключи в словаре
type(d.values())
list(d.values())
d.items() # вернет список кортежей ключ-значение
d = {"foo": 42}
d["foo"] # доступ к элементам осуществляется также как и для списков
d["fee"]
d.get("fee") # также можно добавить значение которое возвращаем, если такого ключа нет
d["fee"] = 24
d
d.setdefault("baz", 244)
d
del d["baz"]
d
d.update([("baz", 244)])
d
d.clear()
d
d