相关疑难解决方法(0)

"setdefault"dict方法的用例

加入collections.defaultdict在Python 2.5大大降低用于需要dictsetdefault方法.这个问题适合我们的集体教育:

  1. setdefault今天在Python 2.6/2.7中还有什么用处?
  2. 哪些流行的用例setdefault被取代了collections.defaultdict

python dictionary setdefault

181
推荐指数
7
解决办法
9万
查看次数

dict.get()方法返回一个指针

假设我有这段代码:

my_dict = {}
default_value = {'surname': '', 'age': 0}

# get info about john, or a default dict
item = my_dict.get('john', default_value)

# edit the data
item[surname] = 'smith'
item[age] = 68

my_dict['john'] = item
Run Code Online (Sandbox Code Playgroud)

如果我们现在检查default_value的值,问题就变得清晰了:

>>> default_value
{'age': 68, 'surname': 'smith'}
Run Code Online (Sandbox Code Playgroud)

很明显,它my_dict.get()没有返回default_value 的,而是返回指针(?).

可以通过将代码更改为:

item = my_dict.get('john', {'surname': '', 'age': 0})
Run Code Online (Sandbox Code Playgroud)

但这似乎不是一个很好的方法.有什么想法,评论?

python dictionary pass-by-reference

15
推荐指数
4
解决办法
2万
查看次数

python三元运算符与赋值

我是python的新手.我想写这个

if x not in d:
    d[x] = {}
q = d[x]
Run Code Online (Sandbox Code Playgroud)

使用三元运算符以更紧凑的方式

q = d[x] if x in d else (d[x] = {})
Run Code Online (Sandbox Code Playgroud)

但这会给出语法错误.我错过了什么?

python

2
推荐指数
1
解决办法
4903
查看次数

使用 python 默认字典与 .get()

我想要一本默认为 None 的字典。我有两种实现方法:1)使用collections.defaultdict并将默认值设置为None。 https://docs.python.org/2/library/collections.html

2)使用普通字典但使用.get()来获取值。当key不存在时,默认返回None。

哪种方式更好?

python dictionary

2
推荐指数
1
解决办法
2099
查看次数