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)
# []
