Найти - Пользователи
Полная версия: эмуляция sql запроса
Начало » Python для новичков » эмуляция sql запроса
1
habrman
есть список словарей
 [{
'name':name1
'date':''2019-07-07 15:22'
},
{
'name':name2
'date':''2019-07-07 15:23'
}]
я хочу посчитать уникальные имена например за последние 5 минут
в sql делается так
 select count(distinct name) from t where date> date_sub(now(), interval 5 minute)
как в питоне это реализовать?
ну кроме варианта с прямым перебором элементов
FishHook
попробуйте pandas
doza_and
 t=[{
'name':"name1",
'date':3.14
},
{
'name':"name2",
'date':3.15
},
{
'name':"name3",
'date':3.16
},
]
print(len(set([i["name"] for i in t if i["date"]>=3.15])))
>>> 2
Если вы хотите работать с временем и хранить надо время а не строки. Я передалал во float для простоты.
habrman
ну кроме варианта с прямым перебором элементов
И то что я привел, и то что вы привели это и есть прямой перебор.

Если вы желаете избежать простого перебора то можно создать индекс.
В питоне можете создать его например при помощи
http://www.grantjenks.com/docs/sortedcontainers/

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB