a = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
b = [y[1] for y in filter(lambda x: x[0]%4 == 0, enumerate(a, 1))]
print(b)
# [13, 17, 21, 25]
b = a[3::4]
print(b)
# [13, 17, 21, 25]
def game_result(result_frame):
if 'X' in result_frame:
return 20
elif '/' in result_frame:
return 15
elif '-' in result_frame:
return 0
return int(result_frame[0]) + int(result_frame[1])
def get_score(analized_res):
total, count, frames = 0, 0, 0
for frame, result_frame in (analized_res.items()):
frames += 1
count += 1
check_errors(result_frame)
total += game_result(result_frame)
print(f'Фрейм {count} результат {result_frame}')
print(f'кол-во очкoв {total}')
if frames != 10:
raise Exception('Неправильное количество фреймов!')
return total
...
import matplotlib.pyplot as plt
%matplotlib inline
import cv2
from PIL import Image, ImageDraw
import numpy
def get_colors(infile, numcolors=10, swatchsize=20, resize=150):
plt.rcParams['figure.figsize'] = [15, 3]
f,ax = plt.subplots(1,2)
image = Image.open(infile)
orig = image.copy()
image = image.resize((resize, resize))
result = image.convert('P', palette=Image.ADAPTIVE, colors=numcolors)
result.putalpha(0)
colors = result.getcolors(resize*resize)
pal = Image.new('RGB', (swatchsize*numcolors, swatchsize))
draw = ImageDraw.Draw(pal)
posx = 0
for count, col in sorted(colors, key=lambda x: x[0], reverse=True):
draw.rectangle([posx, 0, posx+swatchsize, swatchsize], fill=col)
posx = posx + swatchsize
img = numpy.asarray(pal)
del draw
print('File: ', infile)
for im in sorted(colors, key=lambda x: x[0], reverse=True):
if im[1].index(max(im[1])) == 0:
print(im, 'red')
elif im[1].index(max(im[1])) == 1:
print(im, 'green')
elif im[1].index(max(im[1])) == 2:
print(im, 'blue')
ax[0].imshow(orig)
ax[1].imshow(img)
if __name__ == '__main__':
get_colors('D:\\00\\sample01.jpg', numcolors=1)
get_colors('D:\\00\\sample02.jpg', numcolors=1)
get_colors('D:\\00\\sample03.jpg', numcolors=1)
Дана какая-то последовательность типа b'/x08/fgsdfgds/x09'. Через обычный decode - она никак не декодируется и тут проблема не в кодировке. Просто она после работы функции возвращает саму себя. Как декодировать такие последовательности байтов
>>> diction={365:1}
>>> print(id(diction))
4478940144
>>> def a():
... x=diction
... x.update({365:5})
... print('in a: ', id(x))
...
>>> def b():
... x=diction
... print(x[365])
... print('in b: ', id(x))
...
>>> a()
in a: 4478940144
>>> b()
5
in b: 4478940144
>>> print(id(diction))
4478940144
print(tree.find('.//{http://zakupki.gov.ru/oos/types/1}id').text)
# 18934116
import re
from lxml import etree
parser = etree.XMLParser(ns_clean=True)
xml = re.sub(' xmlns="[^"]+"', '', xml, count=1) # в xml - ваш реальный xml
tree = etree.fromstring(xml.encode(), parser)
print(tree.find(".//id").text)
# 18934116
Я предполагаю, что можно модели пользователя добавить численный атрибут, который будет уменьшаться с созданием новых объектов, но нужно еще, чтобы этот счетчик автоматически обновлялся каждые 24 часа.
Еще момент, что если пользователь в день опубликует один объект, то у него останется еще два, а из этого следует, что при возобновлении счетчика на следующий день у него будет уже 5 записей. Этот момент тоже нужно учесть.
if SomeModel.objects.filter(
author=request.user,
timestamp__gte=timezone.now()-datetime.timedelta(days=1),
).count() < LIMIT:
# allow create
else:
# decline create