Python 基础知识 为什么 set() 有效但 {} 失败?
Python basics why set() works but {} fails?
s = ["this", "that", "this"]
为什么 set(s)
有效但 {s}
失败
TypeError: unhashable type: 'list'
这是因为它们意味着不同的东西。 set(s)
迭代 s
来创建一个集合,而文字语法 {s}
只是试图创建一个包含单个元素 s
.
的集合
>>> set("abc")
{'a', 'b', 'c'}
>>> {"abc"}
{'abc'}
尝试使用 {*s}
代替 set(s)
。
s = ["this", "that", "this"]
为什么 set(s)
有效但 {s}
失败
TypeError: unhashable type: 'list'
这是因为它们意味着不同的东西。 set(s)
迭代 s
来创建一个集合,而文字语法 {s}
只是试图创建一个包含单个元素 s
.
>>> set("abc")
{'a', 'b', 'c'}
>>> {"abc"}
{'abc'}
尝试使用 {*s}
代替 set(s)
。