Транслит с кириллицы на латиницу:
print unidecode('текст на русском')
Преобразование кодировок в UTF-8:
print unicode('текст в какой-то кодировке', 'UTF-8')
Преобразование содержимого файла file в UTF-8:
import codecs
txtfile = codecs.open(file, "r", "utf-8")
data = txtfile.read()
txtfile.close()
Копирование словаря
# variant 1:
dict2 = dict(dict1)
# variant 2:
dict2 = dict1.copy()
Копирование списка
x = [1,2,3]
y = x[:]
Копирование вложенных списков/словарей
import copy
dict = {'a': [1, 2, 3], 'b': [4, 5, 6]}
copy_dict = copy.deepcopy(my_dict)
Взято отсюда: Python: вещи, которых вы могли не знать
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x for x in list_a]
list_b = [x for x in list_a if x % 2 == 0] # Условие для фильтрации
list_b = [x for x in list_a if x % 2 == 0 and x > 0] # Условие для фильтрации с логическими операторами
list_b = [x if x < 0 else x**2 for x in list_a] # Ветвление выражения
list_b = [x**3 if x < 0 else x**2 for x in list_a if x % 2 == 0] # Комбинирование фильтрации и ветвления
matrix = [[0, 1, 2, 3],
[10, 11, 12, 13],
[20, 21, 22, 23]]
flattened = [n for row in matrix for n in row] # Двумерный список
matrix = [[0 for x in range(4)] for y in range(5)] # Создание двумерной матрицы 4х5
dict_abc = {'a': 1, 'b': 2, 'c': 3, 'd': 3}
dict_123 = {v: k for k, v in dict_abc.items()} # Генератор словаря
dict_a = dict((x, x ** 2) for x in list_a)
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
my_str = ''.join(str(x) for x in list_a) # Генератор строк
Взято отсюда: Python: коллекции, часть 4/4
Возможность обращения к объекту как к словарю: register[name] или как обычно register.name
class DotDict(dict):
__getattr__ = dict.get
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
dot.notation access to dictionary attributes
class DotDict(dict):
__getattr__ = dict.get
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
color = DotDict( {'OffLine':'#808080', 'PowerOff':'#bd6d6c', 'Machining':'#75d874', 'Settings':'#7b9ce1', 'Idle':'#e0bc78', 'Undefined':'#FAFAFA'} )
print(color['PowerOff'], color.Machining)
from multiprocessing import Process, Value
def f1(x,y):
while True:
x.value, y.value = random.randint(1,10), random.randint(100,1000)
time.sleep(1.0)
def f2(z):
while True:
z.value = random.randint(40,50)
time.sleep(1.0)
if __name__ == '__main__':
x = Value('d', 100.0)
y = Value('d', 100.0)
p1 = Process(target=f1, args=(x,y))
p1.start()
z = Value('d', 100.0)
p2 = Process(target=f2, args=(z))
p2.start()
#p1.join()
#p2.join()
while True:
print(x.value, y.value, z.value)
time.sleep(1.0)
sudo apt-get install python3-pip
sudo pip3 install flask
# Ставим wsgi именно для Python 3, он заменяет версию для Python 2 и обратно:
sudo apt-get install libapache2-mod-wsgi-py3
# На всякий случай если не подключился модуль на автомате:
sudo a2enmod wsgi
def myround(x, base=7):
return int(base * round(float(x)/base))
a=[1,10,15,13,45,75,16,17,18,19,20]
for b in a:
print(myround(b,7))