试图让我了解编程,我无法弄清楚为什么这不起作用?我是否错误地使用“不”和“进入”?
我试图让程序只打印出两个字符串中出现的字符。它正确识别它们,但是如果有多个字符,我不能只打印一组字符。
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作为主字符串输入时才有效,但我只是对这为什么不起作用感兴趣。
答案 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)