多次检查数字是否有数字

新手上路,请多包涵

我遇到了一个令人费解的挑战。我必须多次检查一个数字是否包含相同的数字。 11、424、66等。起初这似乎很容易,但我很难想出一个逻辑来检查这个。有任何想法吗?

这是我到目前为止所得到的。该函数接受一个列表。 (更新)

 arr = [[1,20],[1,10]]

for i in arr:
    l = list(range(i[0],i[1]))
    for num in l:
        if num < 11: continue
        for c in str(num):
            if str(num).count(c) > 1:
                # dont know why code is popping off 12 and 13
                print(l.pop(num))

原文由 Mint 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 498
2 个回答

如果您的最终目标只是简单地检测是否有 double,此功能可能会有所帮助:

 def has_doubles(n):
    return len(set(str(n))) < len(str(n))

原文由 kardaj 发布,翻译遵循 CC BY-SA 3.0 许可协议

我能想到的最好方法是将数字转换为字符串并对其进行计数器

from collections import Counter
a = 98
c = Counter(str(a))
if any(value > 1 for value in c.values()):
    print "The number has repeating digits"

@Two-BitAlchemist 感谢建议

原文由 Aswin Murugesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进