python - 在 Python 中,dict.pop(a,b) 是什么意思?

标签 python dictionary

class a(object):
    data={'a':'aaa','b':'bbb','c':'ccc'}
    def pop(self, key, *args):
            return self.data.pop(key, *args)#what is this mean.

b=a()
print b.pop('a',{'b':'bbb'})
print b.data

self.data.pop(key, *args) ←------为什么还有第二个参数?

最佳答案

pop dicts 的方法(如 self.data ,即 {'a':'aaa','b':'bbb','c':'ccc'} ,这里)需要两个参数——见 the docs

第二个参数,default , 是什么 pop如果第一个参数 key 则返回, 缺席。 (如果您调用 pop 时只使用一个参数 key ,如果该键不存在,则会引发异常。

在您的示例中,print b.pop('a',{'b':'bbb'}) ,这是无关紧要的,因为 'a' b.data 中的一个键.但是如果你重复那行......:

b=a()
print b.pop('a',{'b':'bbb'})
print b.pop('a',{'b':'bbb'})
print b.data

你会发现它有所不同:第一个 pop删除 'a'键,所以在第二个 pop default实际上返回了参数(因为 'a' 现在不在 b.data 中)。

关于python - 在 Python 中,dict.pop(a,b) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1990802/

相关文章:

iOS 后台 MKPointAnnotation

python - Django 网址帮助 - 无法访问 View

python - 没有预测样本的标签中出现警告 : Precision and F-score are ill-defined and being set to 0. 0。使用 `zero_division` 参数

python - 在 python+django 中循环导入?!如何让它发挥作用?

python - 根据2列中的多个值输出多个文本

python - 错误的维度 XOR 神经网络 python

python - 如何在字典中存储多个值?

python - 访问 python 中的字典列表并使用值对其进行排序(嵌套字典)

Python:用于计算字符串中唯一字母的字典

c# - 如何在 linq 中展平字典 <string,List<string>> 并将键保留在结果中