字符串在某个ch之后匹配

2024-06-28 10:56:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想看看最后一次某个字符出现后,两个字符串是否匹配。例如:

same_list = ['Time - is an illusion.', 'Lunchtime - which is delicious - is an illusion.']

True

所以在这个例子中,我的特定字符是“-”。我想看看两个字符串的最后一个“-”后面的字符串是否匹配。'-'is'后面的字符串是一个幻觉。'对于这两个字符串。所以这是真的

到目前为止,我已经:

same_list = ['Time - is an illusion.', 'Lunchtime - which is delicious - is an illusion.']

some_list = []

for string in same_list:
    for ch in string:
        if ch == '-':
            new_string = string.split(ch)
            some_list.append(new_string)

i = 0

for sublist[-1] in some_list:

我觉得我忘记了用python做这件事的一种更简单的方法。我只记得while循环,但它会返回第一个出现的“-”,而不是最后一个。另外,我编写的函数返回第二个字符串两次,因为它被拆分了两次。我该怎么处理呢


Tags: 字符串inanwhichforstringtimeis
1条回答
网友
1楼 · 发布于 2024-06-28 10:56:26

您可以这样做(假设列表中的所有结尾都必须匹配):

def end_matches(*phrases):           # phrases becomes a tuple that will take any number
    phrase_endings = set()           # number of positional parameters
    for phrase in phrases:
        end = phrase.split('-')[-1]  # take the last element of the split list
        phrase_endings.add(end)
    return len(phrase_endings) == 1  # the set holds only unique values, so a set of
                                     # length 1 means all values in the set are the same

现在可以进行测试:

>>> same_list = ['Time - is an illusion.', 'Lunchtime - which is delicious - is an illusion.']
>>> end_matches(*same_list)          # unpack the list into individual positional arguments
True

相关问题 更多 >