使用数组在字符串中查找子字符串?
Finding a substring within a string using an array?
我试图了解编程,但我无法弄清楚为什么这不起作用?我是否错误地使用了 "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 作为主字符串时才有效,但我只是想知道为什么这不起作用。
问题是您没有将常用字母添加到 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)
我试图了解编程,但我无法弄清楚为什么这不起作用?我是否错误地使用了 "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 作为主字符串时才有效,但我只是想知道为什么这不起作用。
问题是您没有将常用字母添加到 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)