【发布时间】:2026-01-26 17:05:01
【问题描述】:
而不是将变量添加到正确的集合中,例如:
set_to_add_to = set()
set_to_add_to.add("test")
我只是不小心打码了:
set_to_add_to = set()
set_to_add_to = set_to_add_to.add("test")
虽然我很欣赏这不是您应该将项目添加到集合中的方式,但它让我感到超乎想象的是,执行上述操作会导致 set_to_add_to 获得 None 的值。我无法弄清楚为什么会发生这种情况 - 它似乎类似于 int_variable = int_variable + 5,它可以正常工作。
同样:
set_to_add_to = set()
new_set = set_to_add_to.add("test")
导致new_set 取值None - 为什么不是先将test 添加到set_to_add_to 然后再分配给new_set?
【问题讨论】:
-
.add("test") 调用将“test”添加到集合中,但函数本身返回 None。您不应该分配 new_set,而是将分配和 .add() 调用放在不同的行上。即 set_to_add_to.add("test") 就是你所需要的。
-
set是 python 中的不可变数据结构,add()函数返回None
标签: python python-3.x