【问题标题】:Find a repeated character in a string (python)在字符串中查找重复的字符(python)
【发布时间】:2018-08-27 05:00:47
【问题描述】:

我设法在网上找到了这段代码,它向我展示了如何在字符串中查找和打印重复的字符。我很困惑它是如何工作的。我不明白 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)

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

【问题讨论】:

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


    【解决方案1】:

    变量h 已被定义为字典。对于输入字符串中的每个字母,如果它存在于映射中,则将其打印出来,否则会为映射分配一个 (key, value) 对 (letter, 0)。也就是说,以字母作为键,零作为(任意)值进入映射。这是带有一些 cmets 的循环:

    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
    

    【讨论】:

    • 解释得很好。非常感谢。
    猜你喜欢
    • 2014-02-27
    • 2018-05-15
    • 2017-04-25
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多