如何比较一个字符串输入是否为第二个字符串输入的前缀?

问题描述 投票:1回答:1

例如,用户输入“ 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)
python string prefix
1个回答
0
投票

您可以使用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))

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))
© www.soinside.com 2019 - 2024. All rights reserved.