您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python – 从作为另一个元素的子串的字符串列表中删除任何元素

5b51 2022/1/14 8:23:24 python 字数 2143 阅读 590 来源 www.jb51.cc/python

所以从一个字符串列表开始,如下所示 string_list = [‘rest’, ‘resting’, ‘look’, ‘looked’, ‘it’, ‘spit’] 我想从列表中删除另一个元素的子串的任何元素,给出结果为… string_list = [‘resting’, ‘looked’, ‘spit’] 我有一些代码可以实现这一点,但是令人尴尬的是丑陋,可能不必要的复杂.在Python中有

概述

string_list = [‘rest’,‘resting’,‘look’,‘looked’,‘it’,‘spit’]

我想从列表中删除一个元素的子串的任何元素,给出结果为…

string_list = [‘resting’,‘spit’]

我有一些代码可以实现这一点,但是令人尴尬的是丑陋,可能不必要的复杂.在Python中有一个简单的方法吗?

您可以使用来检查:

>>> 'rest' in 'resting'
True
>>> 'sing' in 'resting'
False

接下来,我们将选择创建新列表的天真的方法.我们将逐个添加项目到新的列表中,检查它们是否是子字符串.

def substringSieve(string_list):
    out = []
    for s in string_list:
        if not any([s in r for r in string_list if s != r]):
            out.append(s)
    return out

您可以通过排序来减少比较数量(毕竟更长的字符串永远不会是较短/等长的字符串的子字符串):

def substringSieve(string_list):
    string_list.sort(key=lambda s: len(s),reverse=True)
    out = []
    for s in string_list:
        if not any([s in o for o in out]):
            out.append(s)
    return out

总结

以上是编程之家为你收集整理的Python – 从作为另一个元素的子串的字符串列表中删除任何元素全部内容,希望文章能够帮你解决Python – 从作为另一个元素的子串的字符串列表中删除任何元素所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶