字典setdefault方法的學習
阿新 • • 發佈:2019-02-28
append iterable tro urn 是否可用 方法 The 一個 ron
Python 字典 setdefault() 函數和get() 方法類似, 如果鍵不存在於字典中,將會添加鍵並將值設為默認值。
語法:
dict.setdefault(key, default=None)
實例:
dict = {‘runoob‘: ‘菜鳥教程‘, ‘google‘: ‘Google 搜索‘} print "Value : %s" % dict.setdefault(‘runoob‘, None) print "Value : %s" % dict.setdefault(‘Taobao‘, ‘淘寶‘)
代碼:
#!./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‘]}
擴展應用場景
可以思考一下是否可用於評率限制
邏輯:
以用戶的唯一標示為鍵,再以用戶的訪問記錄的列表為值;在用戶下一次訪問時判斷列表的最後一個是否小於(當前時間-頻率時間);如果小於,則剔除;
然後再判斷列表的長度時候超過頻率數,如超過,則return false,else true
數據結構:
{
192.168.1.2:[234234234,234234228,234234210],
192.168.1.3:[234234234,234234228,234234210],
}
字典setdefault方法的學習