其实我经常好奇一件事, 为什么 Python 得 dict 没有 set 方法, 有人知道什么历史原因吗

1 天前
 iorilu

经常操作 dict

d = {}
d['name'] ='tom'
d['age'] = 30

这样得代码, 其实我很想有一个 set 方法, 我觉得这样 比上面写法更好

而且 dict 明明有 get 方法, 有 set 很合理

而且还有个 setdefault 方法, 而且这个方法很容易混淆, 因为这个方法 主要作用是获取值, 并不是设置值得, 这个名字一看都不清楚什么意思

总的来说, 我认为应该有 set 方法

但 python 一直没有, 而且既然没有, 后面加上应该不会有任何不兼容

当然这么明显得事情 python 开发组不可能不知道, 那么到底是什么原因 不能放一个 set 方法呢

2249 次点击
所在节点    Python
24 条回复
guyeu
1 天前
set 关键字应该是正解,其次应该是 set 的含义在 dict 这个场景并不能很好地表达这个方法的目的。

dict 是键值对的集合,往集合里添加内容应该是 put 或 insert 。
julyclyde
1 天前
@DOLLOR 嗯我错了。不是保留关键词
是 built-in type
你如果用 set 做变量名,相当于覆盖了内置的 set 数据类型吧?
llsquaer
1 天前
setdefault 是设置默认值,如果有就不设置了。 你用这个取值?防御性编程啊。
e3c78a97e0f8
1 天前
[Zen of Python:]( https://peps.python.org/pep-0020/)

There should be one-- and preferably only one --obvious way to do it.

虽然 Python 开发者自己也经常搞出同一件事的几种做法,但是他们每次都能找到一堆理由。你这个做法完全是 style preference ,并不符合 Zen Of Python 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1080237

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX