使用数组在字符串中查找子字符串?

时间:2015-10-02 21:56:16

标签: list python-3.x substring

试图让我了解编程,我无法弄清楚为什么这不起作用?我是否错误地使用“不”和“进入”?

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

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作为主字符串输入时才有效,但我只是对这为什么不起作用感兴趣。

1 个答案:

答案 0 :(得分:0)

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

您应该使用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)