如何比较包含相同元素的两个列表的顺序?

时间:2015-08-06 07:39:03

标签: python

我正在尝试确定列表是否与包含相同元素的另一个列表的排序方式相同。例如:

a = ['a', 'b', 'c']
b = ['b', 'c', 'a']

if a != b:
  print("Wrong order")

我希望能够确定两个列表是否具有相同的排序。无论是略有不同还是完全无关紧要,我只需要能够判断它们是否不同。

2 个答案:

答案 0 :(得分:1)

您可以简单地比较列表的排序版本:

if a == b:
  print 'Same elements, same order'
elif sorted(a) == sorted(b):
  print 'Same lists, different order'
else:
  print 'Completely differeent'

当然有更有效的方法(例如,您可以先查看列表的长度......),但这非常易读。

答案 1 :(得分:-3)

我发现这非常pythonic:

different = len(set(a).difference(set(b)))

<强>更新

 different = len(set(a).difference(set(b))) or (len(a) != len(b))