逻辑:
以用户的唯一标示为键,再以用户的访问记录的列表为值;在用户下一次访问时判断列表的最后一个是否小于(当前时间-频率时间);如果小于,则剔除;
然后再判断列表的长度时候超过频率数,如超过,则return false,else true
数据结构:
{
192.168.1.2:[234234234,234234228,234234210],
192.168.1.3:[234234234,234234228,234234210],
}
参考代码:
#!./usr/bin/env python # -*- coding: utf-8 -*- # Date: 2019/2/28 iterable = {'user': 'alex', 'user1': 'wusir', 'user2': 'xdc'} values = {'user': ['sch']} other_value = 'test' # demo1 for element in iterable: if element not in values: values[element] = [] values[element].append(other_value) print(iterable) # {'user2': 'xdc', 'user': 'alex', 'user1': 'wusir'} print(values) # {'user2': ['test'], 'user': ['sch', 'test'], 'user1': ['test']} # demo2 for element in iterable: values.setdefault(element, []).append(other_value) print(iterable) # {'user2': 'xdc', 'user': 'alex', 'user1': 'wusir'} print(values) # {'user2': ['test', 'test'], 'user': ['sch', 'test', 'test'], 'user1': ['test', 'test']}