如何找出 python list 中有重复的项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何找出 python list 中有重复的项相关的知识,希望对你有一定的参考价值。
可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务。list1 = [1,2,3,4,5]
list2 = [4,5,6,7,8]
print [l for l in list1 if l in list2]
# [4,5]
如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法。首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素。
set1 = set(list1)
set2 = set(list2)
print set1 & set 2
# 4,5 参考技术A def finddupl(lst):
"""找出 lst 中有重复的项
(与重复次数无关,且与重复位置无关)
"""
exists, dupl = set(), set()
for item in lst:
if item in exists:
dupl.add(temp)
else:
exists.add(temp)
return dupl 参考技术B l = [1,1,2,2,2,3,3,3,3,5,6,4,6,4,5,5,5]
d =
for x in set(l):
d[x] = l.count(x)
print d本回答被提问者和网友采纳
字符串中的数字以“非数字”或错误形式出现 - Python [重复]
【中文标题】字符串中的数字以“非数字”或错误形式出现 - Python [重复]【英文标题】:numbers in string come out as "not numbers" or fals - Python [duplicate] 【发布时间】:2013-06-30 04:07:32 【问题描述】:所以,我在 python 中有一个字符串列表,我试图找出哪些键是数字。
我正在尝试使用list.[key].isdigit()
,但它仅适用于'0'
例如:
list = ['0', '0', '0', '0.450000000000000', '0', '0', '0', '0.550000000000000']
只会确定'0'
是一个数字,但'0.45'
和'0.55'
不是。
我该如何解决这个问题?
非常感谢
【问题讨论】:
查看此链接 - rosettacode.org/wiki/Determine_if_a_string_is_numeric#Python 【参考方案1】:你可以使用异常处理和一个函数:
>>> def is_num(x):
... try :
... float(x)
... return True
... except ValueError:
... return False
...
>>> lis = ['0', '0', '0', '0.450000000000000', '0', '0', '0', '0.550000000000000']
>>> for x in lis:
... print is_num(x)
...
True
True
True
True
True
True
True
True
【讨论】:
【参考方案2】:当空格和文本混合时,这可以应付:
import re
def ok(val):
m = re.match('\s*\d+\.?\d*\s*', val)
if m and m.group(0) == val:
return True
return False
list = ['0', '0.450000000000000', '0', '23x', ' 2.7 ', '2. 7', '1.2.3']
for val in list:
print ok(val), val
# True 0
# True 0.450000000000000
# True 0
# False 23x
# True 2.7
# False 2. 7
# False 1.2.3
【讨论】:
【参考方案3】:您可以替换 '.'用零检查它是否是数字,假设你的列表中只有浮点数和整数......
>>> a
['0', '0.45']
>>> for each in a:
... repl = each.replace('.','0')
... if repl.isdigit():
... print each
...
0
0.45
【讨论】:
以上是关于如何找出 python list 中有重复的项的主要内容,如果未能解决你的问题,请参考以下文章
python list找出一个元素的位置(重复元素怎么分别找出位置)