Skip to main content
 首页 » 编程设计

python之为什么我不能将此集合转换回列表

2025年05月04日27shihaiming

x = ['Book1', 'Book2', 'Book3', 'Book4', 'Book5', 'Book6'] 
p = ['Book1', 'Book3'] 
x.pop(x.index('Book2')) 
print(x) 
print(type(x)) 

这里我得到了没有 Book2 的 x,类型是列表,正如预期的那样。

x = set(x) - set(p) 
list(x) 
print(x) 
print(type(x)) 

这里我的输出是:

{'Book4', 'Book5', 'Book6'}

class 'set'

为什么 x 没有转换回列表? 目标是从 x 中删除 p 中的元素,我知道我可以使用列表理解来完成它,但我正在使用它来研究建议。在该过程之后,我将向 x 添加更多项目,这就是为什么我需要返回到 list 类型,否则我会收到此错误:

TypeError: can only concatenate list (not "set") to list

请您参考如下方法:

list(x) 没有到位。它将 x 转换为一个新列表并返回对它的引用,因此它应该被分配回 x (或其他任何东西):

x = 列表(x)

比较

x = set() 
list(x) 
print(x) 
# set() 

到

x = set() 
x = list(x) 
print(x) 
# []