我将如何比较一个字符串输入是否是第二个字符串输入的前缀?
How would I go about in comparing whether one string input is a prefix of the second string input?
例如,用户输入 '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, more information is available on string methods 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()
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))
示例输出:
Insert first string: prepare
Insert second string: preparation
prepar
例如,用户输入 '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, more information is available on string methods 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()
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))
示例输出:
Insert first string: prepare
Insert second string: preparation
prepar