不易损坏类型';列表';在python中使用列表理解时

不易损坏类型';列表';在python中使用列表理解时,python,python-3.x,list-comprehension,typeerror,Python,Python 3.x,List Comprehension,Typeerror,我的代码中有一个名为恶意URL的集合,我正试图从中构建一个列表 当我在恶意URL中运行''时,我得到一个False返回值。另外,我有一个数组input,当我运行[e for e in input]时,我得到了与input相同的设置 然而,当我试图运行[e in恶意\u url for e in input]来简单地获取一个输入URL是恶意的列表时,我得到一个错误,说TypeError:unhabable type:'list'?如果input是一个列表列表(听起来像是这样),那么您对列表的理解就

我的代码中有一个名为
恶意URL
的集合,我正试图从中构建一个列表

当我在恶意URL中运行
''时,我得到一个
False
返回值。另外,我有一个数组
input
,当我运行
[e for e in input]
时,我得到了与input相同的设置


然而,当我试图运行
[e in恶意\u url for e in input]
来简单地获取一个输入URL是恶意的列表时,我得到一个错误,说
TypeError:unhabable type:'list'

如果
input
是一个列表列表(听起来像是这样),那么您对列表的理解就少了一步

[[e in malicious_urls for e in i] for i in input]  

如果你想要一个扁平的列表,你也可以使用列表理解

[item for sublist in [[e in s for e in i] for i in l] for item in sublist]

我认为这不是一个使用列表理解的好地方,因为你想要的是两个列表的交集

相反,我将使用,因为集合具有交集作为基本操作:

>>> malicious = {'badsite.com', 'reallybadsite.com', 'literallywillkillcomputer.com'}
>>> sites = {'badsite.com', 'goodsite.com', 'literallywillkillcomputer.com'}
>>> sites & malicious
{'badsite.com', 'literallywillkillcomputer.com'}

[(恶意URL中的e)用于输入中的e]
?@LutzHorn我已经尝试过了,但都是一样的issue@chrisz不正确,我在代码
input
包含列表的其他地方有类似的列表理解。检查列表是否在集合中会抛出一个
TypeError
,因为您无法为列表计算哈希。请发布一个。这如何修复TypeError?据我所知,
input
是一个列表,
恶意URL
是一个集合。在他的列表理解中,他有
恶意URL
单个项目(
e
)应该在哪里。由于您所做的只是重新排列代码,我看不出这对解决问题有什么作用。如果OP的列表理解抛出一个类型错误,那么你的列表理解也会抛出一个类型错误。你所做的一切就是改变输出——这一点一开始都没有错。啊,我明白你的意思了。编辑帖子。实际上这没有帮助,因为我需要保留元素的顺序,并在正确的索引中为数组中的所有元素获取布尔值,以便输入机器学习模型
>>> malicious = {'badsite.com', 'reallybadsite.com', 'literallywillkillcomputer.com'}
>>> sites = {'badsite.com', 'goodsite.com', 'literallywillkillcomputer.com'}
>>> sites & malicious
{'badsite.com', 'literallywillkillcomputer.com'}