0
votes

Supprimer les éléments de la matrice lorsque la date est passée

J'ai un tableau dans mon projet Python et j'ajoute des éléments à la matrice avec ce code:

items = [item for item in items if item['date'] + 10 <= time.time()]


0 commentaires

5 Réponses :


1
votes

Vous devrez utiliser l'objet chronomelta xxx


2 commentaires

Cela les supprimera aussi. Avez-vous vérifié votre réponse?


Merci. J'ai mis à jour la réponse..stesté ici. repl.it/@geofrocker2/removeitemfromarraybasedonate



0
votes

Vous devez vérifier si TimePoint + 10 secondes est supérieure à celle du TimePoint actuel, car cela signifie que 10 secondes n'ont pas encore passé

items = [item for item in items if time.time() - item['date'] <= 10]


0 commentaires

1
votes

Vous souhaitez supprimer des éléments existants de plus de 10 secondes dans la liste, car vous devez enregistrer celui qui est inférieur à 10, changez votre code pour vérifier le contraire. xxx


0 commentaires

-1
votes
items = [item for item in items if item['date'] + timedelta(seconds=10) >= datetime.now()]
it worked for me
and removed all items where the date passed after 10 seconds

0 commentaires

0
votes

Tout d'abord, vous devez d'abord utiliser chronomelta. xxx pré>

alors vous pouvez comparer facilement la date avec p>

par exemple: P>

for item in items:
    past = datetime.datetime.now() - datetime.timedelta(seconds=2)
    if item['date']<past:
        items.remove(item)


2 commentaires

Regardez cette ressource sur la compréhension de la liste .. digitalOcean.com / Communauté / Tutoriels / ...


Je connais la compréhension de la liste. Je viens de vous donner un exemple de travail. Donc, si vous utilisez DateTime: éléments = [élément pour l'élément dans les éléments si l'élément ['date'] + DateTime.Timedelta (secondes = 10) <= DateTime.dateTime.now ()]