鱼C论坛

 找回密码
 立即注册
查看: 3015|回复: 9

[已解决].pop()的用法,请前辈解答

[复制链接]
发表于 2016-11-3 22:37:48 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 wow7jiao 于 2016-11-4 10:54 编辑

def timer(func, *pargs, **kargs):
        _reps = kargs.pop('_reps', 1000) #pop里面有2个参数,一个参数是检测序号。请问2个参数分别代表什么
最佳答案
2016-11-3 22:37:49
def timer(func, *pargs, **kargs):
        _reps = kargs.pop('_reps', 1000) #pop里面有2个参数,一个参数是检测序号。请问2个参数分别代表什么

这里kargs是一个dict;dict用pop的话有以下这两种情况:
1._reps = kargs.pop('_reps',1000),如果kargs中有键为'_reps'的键值对,那么会将'_reps'的值赋值给_reps;
2.如果没有,则将第二个参数(此处是1000)赋值给_reps.

举个栗子:
  1. >>> b = {'a':123,'c':100,'d':134}
  2. >>> b
  3. {'c': 100, 'a': 123, 'd': 134}
  4. >>> c = b.pop('rep',12)
  5. >>> c
  6. 12 #b中没有键为'rep'的键值对,所以将第二个参数12赋值给c
  7. >>> b
  8. {'c': 100, 'a': 123, 'd': 134}
  9. >>> d = b.pop('a',12)
  10. >>> d
  11. 123 #b中有键为'a'的键值对,因此将字典中'a'对应的值赋值给d,忽略第二个参数
  12. >>> b
  13. {'c': 100, 'd': 134}
复制代码
QQ截图20161104105349.png

最佳答案

查看完整内容

def timer(func, *pargs, **kargs): _reps = kargs.pop('_reps', 1000) #pop里面有2个参数,一个参数是检测序号。请问2个参数分别代表什么 这里kargs是一个dict;dict用pop的话有以下这两种情况: 1._reps = kargs.pop('_reps',1000),如果kargs中有键为'_reps'的键值对,那么会将'_reps'的值赋值给_reps; 2.如果没有,则将第二个参数(此处是1000)赋值给_reps. 举个栗子:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-3 22:37:49 | 显示全部楼层    本楼为最佳答案   
def timer(func, *pargs, **kargs):
        _reps = kargs.pop('_reps', 1000) #pop里面有2个参数,一个参数是检测序号。请问2个参数分别代表什么

这里kargs是一个dict;dict用pop的话有以下这两种情况:
1._reps = kargs.pop('_reps',1000),如果kargs中有键为'_reps'的键值对,那么会将'_reps'的值赋值给_reps;
2.如果没有,则将第二个参数(此处是1000)赋值给_reps.

举个栗子:
  1. >>> b = {'a':123,'c':100,'d':134}
  2. >>> b
  3. {'c': 100, 'a': 123, 'd': 134}
  4. >>> c = b.pop('rep',12)
  5. >>> c
  6. 12 #b中没有键为'rep'的键值对,所以将第二个参数12赋值给c
  7. >>> b
  8. {'c': 100, 'a': 123, 'd': 134}
  9. >>> d = b.pop('a',12)
  10. >>> d
  11. 123 #b中有键为'a'的键值对,因此将字典中'a'对应的值赋值给d,忽略第二个参数
  12. >>> b
  13. {'c': 100, 'd': 134}
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-4 10:03:07 | 显示全部楼层
额,问题是啥。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-4 12:06:32 | 显示全部楼层
clear():删除字典中所有元素。

copy():返回字典(浅复制)的一个副本。

fromkeys(seq,val=None):创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值。

get(key,default=None):返回字典中的键key对应的值value,如果字典中不存在此键,则返回default的值。

has_key(key):如果键key在字典中存在,返回True,否则返回False。python2.2后这个方法几乎已废弃不用了,通常用in来替代。

items():返回一个包含字典中键值对元组的列表。

keys():返回一个包含字典中键的列表。

iter():方法iteritems()、iterkeys()、itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。

pop(key[,default]):和方法get()类似,如果字典中key键存在,删除并返回dict[key],如果key键不存在,且没有给出default的值,引发KeyError异常。

setdefault(key,default=None):和方法get()相似,如果字典中不存在key键,由dict[key]=default为它赋值。

update(dict2):将字典dict2的键值对添加到当前字典中。

values():返回一个包含字典中所有值的列表。

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-4 14:10:05 | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-4 14:26:28 | 显示全部楼层
真的是涨姿势了,受教受教
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-10 23:47:18 | 显示全部楼层
JH_Lau 发表于 2016-11-10 21:38
def timer(func, *pargs, **kargs):
        _reps = kargs.pop('_reps', 1000) #pop里面有2个参数,一个 ...

谢谢了,非常不错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-12 20:15:20 | 显示全部楼层
好像是把里面的数据全部清空
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-16 20:47:35 | 显示全部楼层
涨知识
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-21 16:58:05 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-26 02:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表