【问题标题】:Finding a substring within a string using an array?使用数组在字符串中查找子字符串?
【发布时间】:2015-12-31 05:04:02
【问题描述】:

试图让我的头脑了解编程,但我不知道为什么这不起作用?我是不是用错了“not”和“in”?

我试图让程序只打印出现在两个字符串中的字符。它可以正确识别它们,但如果出现不止一次,我不能让它只打印一组字符。

a = input("string1 :")
b = input("string2: ")
list1 = []

for i in a:
    for j in b:
        if i == j and i not in list1:
            list1.append([i])
            break

print(list1)

例如,如果您打印字符串“alexander”和“alex”,它将打印字符a、l、e、x、a、e

我知道当前的方法只有在输入 string1 作为主字符串时才有效,但我只是对为什么这不起作用感兴趣。

【问题讨论】:

    标签: list python-3.x substring


    【解决方案1】:

    问题在于,不是将常用字母添加到 list1,而是将一个仅包含常用字母的新列表添加到 list1。最后你有一个列表列表。同时,您正在检查列表列表中是否有单个字母,这将始终为 false。

    您应该使用 append 将常用字母“i”添加到列表中:

    a = input("string1 :")
    b = input("string2: ")
    list1 = []
    
    for i in a:
        for j in b:
            if i == j and i not in list1:
                list1.append(i)
                break
    
    print(list1)
    

    您也可以将字符串 a 和 b 转换为集合并将它们相交:

    print set(a) & set(b)
    

    【讨论】:

    • 哇哦,谢谢!你帮助我更好地理解了列表。非常有帮助,我不敢相信它是如此简单
    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多