在字符串中查找重复的字符(python)

时间:2018-03-18 14:58:55

标签: string python-3.x loops iteration recurring

我设法在网上找到了这个代码,它向我展示了如何在字符串中查找和打印重复的字符。我很困惑它是如何工作的。我不明白h [i] = 0部分在技术上是做什么的。有人可以解释一下吗?

a = 'abcdeab'

h = {}

for i in a:
    if i in h:
        print(i)
    else:
        h[i] = 0

我理解它是如何迭代字符串的,但我不明白它是如何被添加到字典中以便检查它是否已经存在于该字典中。设置h [i] = 0是什么让我失望。我不明白为什么它被设置为0。

我在问题得到解答后添加了这个: 我最终创建了一个不同的解决方案,并认为我会发布它以防其他人正在调查相同的问题。它如下(使用列表而不是字典):

a = 'abcdeab'

h = []
for i in a:
    if i in h:
        print(i)
    else:
        h.append(i)

此外,如果您仅查找重复字符的第一次出现,则应在break之后添加print(i)。在这种情况下,它只会打印a而不是ab

1 个答案:

答案 0 :(得分:0)

变量h已被定义为字典。对于输入字符串中的每个字母,如果它出现在地图中,它将被打印,否则地图将被分配一个(键,值)对(字母,0)。也就是说,以字母为键,以及(任意)值为零的条目。这是你的循环和一些评论:

for i in a:
    if i in h:       # if the key 'i' exists in the dictionary
        print(i)
    else:
        h[i] = 0     # otherwise add an entry for this letter