x = ['Book1', 'Book2', 'Book3', 'Book4', 'Book5', 'Book6']
p = ['Book1', 'Book3']
x.pop(x.index('Book2'))
print(x)
print(type(x))
这里我得到没有Book2的x,而type就是list,正如预期的那样。
x = set(x) - set(p)
list(x)
print(x)
print(type(x))
这里我的输出是:
{' Book4',' Book5',' Book6'}
class' set'
为什么x
无法转换回列表?
目标是从x
中删除p
,我知道我可以使用列表理解来完成它,但我用它来研究提议。在此过程之后,我将向x
添加更多项目,这就是为什么我需要返回list
类型,否则我会收到此错误:
TypeError:只能连接列表(不是"设置")到列表
答案 0 :(得分:7)
list(x)
不到位。它将x
转换为新列表并返回对它的引用,因此应将其分配回x
(或其他任何内容):
x = list(x)
比较
x = set()
list(x)
print(x)
# set()
到
x = set()
x = list(x)
print(x)
# []
答案 1 :(得分:3)
您必须将列表(x)分配给变量
x = ['Book1', 'Book2', 'Book3', 'Book4', 'Book5', 'Book6']
p = ['Book1', 'Book3']
x.pop(x.index('Book2'))
print(x)
# ['Book1', 'Book3', 'Book4', 'Book5', 'Book6']
print(type(x))
# <type 'list'>
x = set(x) - set(p)
x = list(x)
print(x)
# ['Book4', 'Book5', 'Book6']
print(type(x))
# <type 'list'>