如何在Python中比较两个列表?

62 投票
6 回答
262974 浏览
提问于 2025-04-16 04:13

如何在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

通过把 abc 转换成一个集合,你可以去掉重复的元素,而且顺序不重要。比较集合的速度也比比较列表要快和高效得多。

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

撰写回答