Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python使用notequal检查两个列表是否相等_Python_Python 3.x - Fatal编程技术网

python使用notequal检查两个列表是否相等

python使用notequal检查两个列表是否相等,python,python-3.x,Python,Python 3.x,我是python新手。我有两份清单: l1=[1,1,1] l2=[1,1,1] 现在,我必须检查这两者是否相等。我有一个目前正在使用的解决方案: def comp(l1、l2): #我们正在检查[1,1,1]和[1,1,1]的条件 尝试: a=set(l1)#将列表转换为set,因为set将返回基于唯一元素的长度。 b=设定值(l2) 返回((a==b)和(len(a)==1)和(len(b)==1)) 除类型错误外: 返回错误 现在,有了这个,我就能解决这个任务了。但我试着从基本上做到这

我是python新手。我有两份清单:

l1=[1,1,1]
l2=[1,1,1]
现在,我必须检查这两者是否相等。我有一个目前正在使用的解决方案:

def comp(l1、l2):
#我们正在检查[1,1,1]和[1,1,1]的条件
尝试:
a=set(l1)#将列表转换为set,因为set将返回基于唯一元素的长度。
b=设定值(l2)
返回((a==b)和(len(a)==1)和(len(b)==1))
除类型错误外:
返回错误
现在,有了这个,我就能解决这个任务了。但我试着从基本上做到这一点

l1=[1,1,12]
l2=[1,1,1]

然后我可以把12当作1,所以我需要知道哪个数字不匹配。有人能帮我吗?

假设列表的长度始终相同,您可以:

is_all_equel = True
for i in range(len(l1)):
    if l1[i] != l2[i]:
        print("index " + str(i) + " is " + str(l1[i]) + " in list 1, and " + str(l2[i]) + " in list 2")
        is_all_equel = False

如果列表中的所有元素都是相等的,则答案为
中的is_all_equal
,假设它们具有相同的长度,您可以执行以下操作:

{i: (v, l2[i]) for i, v in enumerate(l1) if v != l2[i]}
返回

{2: (12, 1)}

例如上面的例子。键是索引,值是列表中相应值的元组。

如果需要知道两个列表是否完全相同,可以直接执行
l1==l2

如果您需要按元素比较列表(假设它们具有相同的长度),并且只使用数字列表, 您可以使用numpy阵列:

将numpy导入为np
l1=np.数组([1,1,12])
l2=np.数组([1,1,1])
l1==l2#数组([真、真、假])
类似于:

l1 = [1,1,12]
l2 = [1,1,1]
for elem in l1:
    if not elem in l2:
        print(elem)
        print(l1.index(elem))

为什么标签
pandas
numpy
在这里?列表可以与
l1==l2
进行比较,它将在窗帘后面检查长度是否相同,并在元素上迭代。但是,您将检查这两个列表是否具有相同的元素,因此
[2,1,1]
[1,2]
comp
函数中是相同的。这没有错。事实上,我正在尝试等效一些数据,所以列表是否总是具有相同的长度?这是否回答了您的问题?它可能有2个元素,但只有一个地方,它什么时候会返回true?这不是返回所有元素是否相等,如果我必须从中返回true呢。那么我必须写一个else部分然后逐个比较吗?我如何检查哪些元素不是matching@GaneshKaspate:如前所述,本词典的键表示不匹配元素的索引(此处:
2
),值是不同值的元组(此处:
1
12
).Indexer错误:列表索引超出范围。。我如何处理这种情况我正试图打印这个values@GaneshKaspate:那么您的列表可能不具有相同的长度;如上所述,只有在长度相同的情况下,上述内容才会起作用。