如何获取一串数字并检查python中是否有重复的数字?

时间:2015-09-17 10:58:06

标签: python numbers duplicates

我如何编写代码,以便我检查一串数字中的重复项。

alist = [['123456789', '112345678', '123345678', '859403126']]
(alist[0][0] = no duplicate)
(alist[0][1] = duplicate)
(alist[0][2] = duplicate)
(alist[0][3] = no duplicate)

感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

创建set并比较长度

>>> x = alist[0][0]
>>> len(set(x)) == len(x)
True

答案 1 :(得分:0)

您可以尝试这种方法:

"".join(set(alist[0][0]))

因此,您将在字符串中获得一组唯一字母,而 join()将以任意顺序将字母连接回字符串。在此操作之后,只需检查新字符串是否与原始字符串具有相同的长度。

答案 2 :(得分:0)

此列表理解

dups = [[len(set(el)) != len(el) for el in el0] for el0 in alist]

产生

[[False, True, True, False]]

即。 False代表'没有重复',True代表'重复'

如果你真的想要这样的文字,请使用:

dups = [[ 'duplicate' if len(set(el)) != len(el) else 'no duplicate' for el in el0] for el0 in alist]

产生

[['no duplicate', 'duplicate', 'duplicate', 'no duplicate']]

答案 3 :(得分:0)

首先,我认为pacholik的答案是最容易理解的答案。 在this example之后,我提供了以下解决方案

import re
alist = [['123456789', '112345678', '123345678', '859403126']]
for i in alist[0]:
    print('alist[0][{}] = '.format(i),'duplicate' if re.search(r'.*?(.).*?\1',i) else 'no duplicate')