2015-04-01 78 views
0

如何检查的元素列表中的
例子:Python的 - 比较列表元素和返回值

>>> l 
[1, 2, 3, 4, 1, 2] 

我想l[0] & l[1]比较所有元素,如果返回我1和2它们与列表中的任何其他元素相匹配。

+0

当且仅当两者都出现在列表中时,是否要返回'l [0]'和'l [1]',或者如果'l [0]'是否要返回'l [0]'如果找到'l [1]'但是'l [0]'不是',那么发现'l [1]'不是'并且'l [1]'? – TheBlackCat 2015-04-01 09:22:51

+0

如果找到l [0],但是l [1]不是,我想返回l [0],如果找到l [1]但l [0]不是,则返回l [1]。如果找到l [0]和l [1],则返回它们两个。 – hmm 2015-04-01 09:26:50

+0

换句话说,只是比较并返回任何发现 – hmm 2015-04-01 09:29:33

回答

0

编辑这可以工作:

numbers = [1, 2, 3, 4, 1, 2] 
if numbers.count(numbers[0])-1: print(numbers[0]) 
if numbers.count(numbers[1])-1: print(numbers[1]) 
>>>1 
>>>2 

,或者如果你只是想比较,并返回任何被发现,你可以使用collections.Counter()

from collections import Counter 
numbers = [1, 2, 3, 4, 1, 2] 
number = Counter(numbers) 
print(number) 
print(str(numbers[0]) + ':' + str(number[numbers[0]]))# item and number of 
print(str(numbers[1]) + ':' + str(number[numbers[1]]))# occurancies 
>>>Counter({1: 2, 2: 2, 3: 1, 4: 1}) 
>>>1:2 
>>>2:2 
+0

我不知道答案有一个正确的格式(我现在用一个非常旧的电脑,所有的网页看起来很奇怪)。很抱歉,如果我违反了邮政规则 – darksaber 2015-04-01 09:37:50

0
if l.count(l[0]) > 1 and l.count(l[1]) > 1: 
    print l[0], l[1] 
elif l.count(l[0]): 
    print l[0] 
elif l.count(l[1]): 
    print l[1] 

或与列表理解

[i for i in l[:2] if l.count(i) > 1]