

Size: a a a
>>> a, b, c = 1, 2, 3
>>> a, b, c
(1, 2, 3)
➜ Можно распапокать и список
>>> a, b, c = [1, 2, 3]
>>> a, b, c
(1, 2, 3)
➜ И даже генератор
>>> a, b, c = (2 * i + 1 for i in range(3))
>>> a, b, c
(1, 3, 5)
➜ Можно разбирать вложенные структуры
>>> a, (b, c), d = [1, (2, 3), 4]
➜ А если указать *, то *b - будет списком всего остального, кроме тех, что без звезды
>>> a, *b, c = [1, 2, 3, 4, 5]
>>> a
1
>>> b
[2, 3, 4]
>>> c
5
➜ Переменная со звездочкой может быть в любом месте, но только одна на список!
>>> a, b, *rest = [1,
2,
3,
4,
5,
6]
>>> rest
[3, 4, 5, 6]
>>> *a, *b = [1,
2,
3,
4,
5,
6] # нельзя! Python не знает, как поделить список надвое
>>> x = [1, 2, 3, 2, 4, 4, 5, 2]
>>> list(set(x))
[1, 2, 3, 4, 5]
from collections import OrderedDict
OrderedDict.fromkeys(l).keys()
>>> ...
Ellipsis
>>> type(...)
<class 'ellipsis'>
**
для этих целей.import glob
for filename in glob.iglob('photos/**/*.jpg', recursive=True):
print(filename)
import fnmatch
import os
matches = []
for root, dirnames, filenames in os.walk('photos'):
for filename in fnmatch.filter(filenames, '*.jpg'):
matches.append(os.path.join(root, filename))
a = ['Hello', 'world', '!']
for i, x in enumerate(a):
# в переменной i будет номер, а в x - элемент списка a
print '{}: {}'.format(i, x)
Вывод:
0: Hello
1: world
2: !
>>> a = [[1, 2], [3, 4], [5, 6]]
>>> import itertools
>>> list(itertools.chain.from_iterable(a))
[1, 2, 3, 4, 5, 6]
>>> sum(a, [])
[1, 2, 3, 4, 5, 6]
>>> [x for l in a for x in l]
[1, 2, 3, 4, 5, 6]
>>> a = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
>>> [x for l1 in a for l2 in l1 for x in l2]
[1, 2, 3, 4, 5, 6, 7, 8]
>>> a = [1, 2, [3, 4], [[5, 6], [7, 8]]]
>>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
>>> flatten(a)
[1, 2, 3, 4, 5, 6, 7, 8]
>>> 0.1 + 0.1 + 0.1 - 0.3
5.551115123125783e-17
0.3
для компьютера не существует, зато есть самое ближайшее к нему число (3 - 5.551115123125783e-17)
.>>> 0.3 == 0.3
True
>>> (0.1 + 0.1 + 0.1) == 0.3
False
>>> def floats_equal(x, y, eps=1e-10): return abs(x - y) < eps
>>> floats_equal( 0.1 + 0.1 + 0.1, 0.3 )
True
>>> from decimal import *
>>> Decimal(0.1)+Decimal(0.1)+Decimal(0.1)-Decimal(0.3)
Decimal('1.11022302E-17')
>>> Decimal(str(0.1)) + Decimal(str(0.1)) + Decimal(str(0.1)) - Decimal(str(0.3))
Decimal('0.0')
pip install emoji
) Любителям Эмодзи. Эта библиотека позволяет вам получать юникодовые Эмодзи смайлики по их ASCII псевдонимам и наоборот. Пример:>> import emoji
>> print(emoji.emojize('Python is :thumbs_up:'))
Python is
👍
>> print(emoji.emojize('Python is :thumbsup:', use_aliases=True))
Python is
👍
>> print(emoji.demojize('Python is
👍'))
Python is :thumbs_up: