因为['a','b','c']和['b','a','c']有相同的元素,但是python中的['a','b','c']==['b','a','c']test返回False。你知道吗
我知道这是由于索引序列。但是如何让python认识到列表中的元素实际上是相同的呢?你知道吗
下面是一个我没有通过测试的例子:
def wordset(wordlist):
"""Return a set of words found in wordlist."""
wordset = []
for i in range(len(wordlist)):
if wordlist[i] not in wordset:
wordset.append(wordlist[i])
return wordset
In: wordset(['now', 'is', 'time', 'is', 'now', 'is', 'is']) == ['is', 'now', 'time']
Out: False
如果您想检查两个列表是否具有相同的元素和相同的出现次数我建议您使用收款台https://docs.python.org/2/library/collections.html#collections.Counter
您也可以像一些人建议的那样使用
set
,但是您将丢失列表中的所有重复项,因此set(['a', 'b', 'b']) == set(['b', 'a'])
实际上将返回True
无法创建同时等于
['a', 'b', 'c']
和['b', 'a', 'c']
的常规列表。如果需要特殊的语义来进行==
比较,则可能需要编写自己的类型:不确定这是否真的可以作为一个答案,但是如果你只是想检查两个列表之间是否相等,你可以做一些事情。你知道吗
对于列表
list1
和list2
:使用
set
使用
sorted
,对多个循环元素无效使用
all
使用
any
相关问题 更多 >
编程相关推荐