如何在Python中比较两个列表?
如何在Python中比较两个列表?
date = "Thu Sep 16 13:14:15 CDT 2010"
sdate = "Thu Sep 16 14:14:15 CDT 2010"
dateArr = [] dateArr = date.split()
sdateArr = [] sdateArr = sdate.split()
现在我想比较这两个列表。我想split函数会返回一个列表。在Java中,我们可以简单地用 dateArr[i] == sdateArr[i]
来比较,但在Python中我们该怎么做呢?
6 个回答
5
如果你是指列表,可以试试用 ==
来比较:
l1 = [1,2,3]
l2 = [1,2,3,4]
l1 == l2 # False
如果你是指 array
的话:
l1 = array('l', [1, 2, 3])
l2 = array('d', [1.0, 2.0, 3.0])
l1 == l2 # True
l2 = array('d', [1.0, 2.0, 3.0, 4.0])
l1 == l2 # False
如果你想比较字符串(根据你的评论):
date_string = u'Thu Sep 16 13:14:15 CDT 2010'
date_string2 = u'Thu Sep 16 14:14:15 CDT 2010'
date_string == date_string2 # False
39
a = ['a1','b2','c3']
b = ['a1','b2','c3']
c = ['b2','a1','c3']
# if you care about order
a == b # True
a == c # False
# if you don't care about order AND duplicates
set(a) == set(b) # True
set(a) == set(c) # True
通过把 a
、b
和 c
转换成一个集合,你可以去掉重复的元素,而且顺序不重要。比较集合的速度也比比较列表要快和高效得多。
127
你可以直接这样做:
a=[1,2,3]
b=['a','b']
c=[1,2,3,4]
d=[1,2,3]
a==b #returns False
a==c #returns False
a==d #returns True