Skip to main content
 首页 » 编程设计

python之在字符串中查找列表元素

2025年05月04日32youxin

我有一个字符串 'RTKLOANGMSTTTS' 和一个元组列表 [(2,5),(8,9)],它返回一个包含字母 2-5 和 8-9 的字符串,即'TKLOGM'。 我在想类似的事情:

def f(string, lst): 
    for element in lst: 
        if element in string: 
            print string 

但是它没有返回任何东西?

请您参考如下方法:

试试这个:

def f(source, lst): 
    return "".join(source[start - 1:end] for start, end in lst) 

这将迭代 lst,在每次迭代时将元组提取到 start 和 end 中。然后它将创建一个新字符串作为 source 字符串的切片,从 start - 1 到 end (我们使用 start - 1 因为你显示 1 表示第一个字符,但是 python 使用 0 索引,所以我们必须减去一个)。最后,我们使用 "".join() 连接所有字符串。

如果您使用不支持生成器语法的旧版本 Python,请改用它:

def f(source, lst): 
    return "".join([source[start - 1:end] for start, end in lst]) 

它的工作原理完全相同,但它没有使用生成器,而是显式地创建了一个被连接的列表。