例如,用户输入“ turn”作为字符串1,对于字符串2,他们输入“ turnover”。我将如何创建一个代码,比较两个字符串的每个字符及其索引。到目前为止,我正在进行这样的事情
string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))
def prefixes(a,b):
if len(b) < len(a):
return False
else:
for i in range(len(b)):
prefixes(string_1,string_2)
您可以使用startswith()
:
string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))
if string_2.startswith(string_1):
# Your code here
注意,如果需要此功能,startswith()
也可以接受索引的参数以开始和停止比较。
如Mark Mayer对问题的评论,有关字符串方法here的更多信息,可用。
编辑:您要求使用for
循环的方法。假设您要检查string_2
是否以string_1
开头。
string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))
def prefix_check(short, long);
for index in range(min(len(short), len(long))):
if short[index] != long[index]:
return false
return true
print(prefix_check(string_1, string_2))
如果您想提取两个输入字符串的公共前缀,则可以将zip()
与itertools.takewhile()
结合使用
itertools.takewhile()
样本输出:
from itertools import takewhile
def prefixes(a, b):
return ''.join(x for x, _ in takewhile(lambda x: x[0] == x[1], zip(a, b)))
string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))
print(prefixes(string_1, string_2))