【发布时间】:2017-02-08 03:23:51
【问题描述】:
我正在学习 python,我倾向于一个教程,该集合不允许可变对象,所以我认为可变对象是列表?
当我尝试这个时
x = set(["Perl", "Python", "Java"])
一切正常。
当我尝试时
cities = set((("Python","Perl"), ("Paris", "Berlin", "London")))
它也可以工作,但是当我尝试这个时
citiess = set((["Python","Perl"], ["Paris", "Berlin", "London"]))
它给出错误?那么为什么它会给出错误,如果它是一个列表,那么为什么当它也有列表时第一个代码正在运行呢??
请不要重定向问题,它与“如何从列表项中构造一个集合”不同
【问题讨论】:
-
这不是重复的
-
列表不能是集合元素;这将失败:
set().add([1,2,3]) -
@User123999 它是重复的,因为
set(["Perl", "Python", "Java"])实际在做什么令人困惑。它是从项目列表中构造一个集合。也许如果您将set(["Perl", "Python", "Java"])更改为{"Perl", "Python", "Java"}并将set((["Python","Perl"], ["Paris", "Berlin", "London"]))更改为{(["Python","Perl"], ["Paris", "Berlin", "London"])},您就会清楚为什么第一个有效而第二个无效。请注意,{...}是集合文字符号。
标签: python python-2.7 python-3.x set