#programowanie #python Jak najładniej zapełnić listę sumą postów w danym dniu? Przykład: lista[0] = suma postów w dniu 0 itd.. Posty mam w liście o nazwie 'myposts' przechowującą instancje klasy post (mającą atrybut date).
dates = [] # tu sobie robisz listę dat, które chcesz sprawdzić lista = [len([post for post in myposts if post.date == date]) for date in dates] Ale jeśli korzystasz z jakiegoś ORMa to powinno się to dać zrobić w jednym zapytaniu.
@MyTearsAreBecomingASea @mackar @mnasadyna: Okay, oprócz wielokrotnego przejścia przez myposts bądź mało czytelnego kodu: jest po prostu Pythonic way na to. :)
from collections import Counter dates_count = Counter(post.date.date() for
@3denos: A jeszcze lepiej zrobić tak jak kolega mackar wyżej napisał - zapytać bazę od razu o odpowiedni wynik. Oczywiście do tego index na samej dacie.
@m_bielawski: Oryginalny post nic nie mówi o żadnej bazie (bo jeśli to dane z jakiegoś API). ;-) Ale tak, oczywiście się zgadzam jeśli tylko jest taka możliwość.
#python
Jak najładniej zapełnić listę sumą postów w danym dniu?
Przykład: lista[0] = suma postów w dniu 0 itd..
Posty mam w liście o nazwie 'myposts' przechowującą instancje klasy post (mającą atrybut date).
dates = [] # tu sobie robisz listę dat, które chcesz sprawdzićlista = [len(list(filter(lambda p: p.date == d, myposts))) for d in dates] #
dates = [] # tu sobie robisz listę dat, które chcesz sprawdzićlista = [len([post for post in myposts if post.date == date]) for date in dates]
Ale jeśli korzystasz z jakiegoś ORMa to powinno się to dać zrobić w jednym zapytaniu.
dates = []import defaultdict from collections
date_posts = defaultdict(lambda: {'sum': 0, 'posts': list()})
for post
Okay, oprócz wielokrotnego przejścia przez myposts bądź mało czytelnego kodu: jest po prostu Pythonic way na to. :)
from collections import Counter
dates_count = Counter(post.date.date() for
https://en.wikipedia.org/wiki/XY_problem