首页 > 其他 > 详细

字典setdefault方法的学习

时间:2019-02-28 11:38:52      阅读:159      评论:0      收藏:0      [点我收藏+]

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方法的学习

原文:https://www.cnblogs.com/sunch/p/10448922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!