Python:删除列表中至少由同一列表中其他一个字符串包含的字符串

穆Mu

我很想过滤字符串的名单如下方式:我要排除的字符串,如果没有至少在同一个列表中的一个其他字符串,它是“”它或以不同的方式把这个:我想保持的字符串,如果是同一列表的任何其他字符串它。如果可能的话,区分大小写应该在这里发挥作用。

为了更清楚一点,请在下面的示例中找到

我的“第一”列表包含每个字符串:

elements =["tree","TREE","treeforest","water","waterfall"]

应用解决方案后,我希望收到以下列表:

elements = ["tree","TREE","water"]

例如:tree在中treeforest因此,treeforest被排除在我的清单之外。这同样适用于waterwaterfall然而treeTREEwater应保持,因为没有其他的字符串,是“”他们。

正如我想将其应用于“更大的”字符串列表中一样,更有效的解决方案是首选。

希望这是可以理解的。在此先多谢!!非常感谢您的帮助。

乌普斯

具有2个循环的相当优化的功能,可节省许多循环迭代:

def filterlist(l):
    # keep track of elements, which will be deleted
    deletelist = [False for _ in l]

    for i, el in enumerate(l):
        # already in deletelist, jump right to the next el
        if deletelist[i]:
            continue

        for j, el2 in enumerate(l):
            # comparing item to itself or el2 already in deletelist?
            # jump to next el2
            if i == j or deletelist[j]:
                continue

            # the comparison everyone expects
            if el in el2:
                deletelist[j] = True

            # also, check the other way around
            # will save loop iterations later
            elif el2 in el:
                deletelist[i] = True
                break # causes jump to next el

    # create new list, keep elements that are not in deletelist
    return [el for i, el in enumerate(l) if not deletelist[i]]

通常内置函数的速度更快,因此让我们将其与Ed Ward的解决方案进行比较:

# result of Ed Ward's solution using timeit:
100000 loops, best of 10: 5.38 usec per loop

# filterlist function with loops using timeit:
100000 loops, best of 10: 4.42 usec per loop

有趣,但是要获得真正具有代表性的结果,您应该使用较大的元素列表运行timeit。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较一个字符串与python同一列中的所有其他字符串

来自分类Dev

检查一个字符串是否包含列表中的至少两个字符串

来自分类Dev

检查一个字符串是否包含列表中的至少两个字符串

来自分类Dev

在其他字符串列表中查找一个字符串

来自分类Dev

隐藏一个字符串,该字符串是正确的列表python中的列表

来自分类Dev

如何从字符串数组列表中删除一个字符串,ANDROID

来自分类Dev

如何从字符串数组列表中删除一个字符串,ANDROID

来自分类Dev

检查数组中是否包含至少一个字符串值

来自分类Dev

熊猫:检查一个字符串是否至少包含一个列表中的两个单词

来自分类Dev

熊猫:检查一个字符串是否至少包含一个列表中的两个单词

来自分类Dev

检查列表中的每个字符串(所有字符串)是否至少是另一个字符串中的一个子字符串

来自分类Dev

如何在 Python 3.5 中删除列表中的最后一个字符串

来自分类Dev

取下列表中的对象 - 包含一个字符串 - 列表相比较,

来自分类Dev

如何查看一个字符串是否包含列表中的所有子字符串?[Python]

来自分类Dev

python list:删除子列表的最后一个字符串

来自分类Dev

在Perl中,如何将一个字符串与其他字符串列表进行匹配?

来自分类Dev

如何知道一个字符串是否属于python中字符串列表的组合?

来自分类Dev

在SQL中,如何检查一个字符串是否是同一表中任何其他字符串的子字符串?

来自分类Dev

显示多个字符串列表中的一个字符串

来自分类Dev

如何从字符串列表中的每个字符串中删除最后一个字符

来自分类Dev

从其他字符串集合的示例中拆分一个字符串

来自分类Dev

给定一个字符串列表,如何检查这些字符串是否在列表中?

来自分类Dev

向列表中的每个单独的字符串添加一个字符串

来自分类Dev

匹配从给定字符串中至少偏离一个字符的任何字符串

来自分类Dev

Python-如何遍历列表中字符串的第一个字符

来自分类Dev

向数组列表中的每个字符串添加一个字符

来自分类Dev

如何在列表中每个字符串的末尾添加一个字符?

来自分类Dev

如何检查一个字符串是否包含多个其他字符串?

来自分类Dev

网站的JUnit测试包含一个字符串或(专有)其他字符串

Related 相关文章

  1. 1

    比较一个字符串与python同一列中的所有其他字符串

  2. 2

    检查一个字符串是否包含列表中的至少两个字符串

  3. 3

    检查一个字符串是否包含列表中的至少两个字符串

  4. 4

    在其他字符串列表中查找一个字符串

  5. 5

    隐藏一个字符串,该字符串是正确的列表python中的列表

  6. 6

    如何从字符串数组列表中删除一个字符串,ANDROID

  7. 7

    如何从字符串数组列表中删除一个字符串,ANDROID

  8. 8

    检查数组中是否包含至少一个字符串值

  9. 9

    熊猫:检查一个字符串是否至少包含一个列表中的两个单词

  10. 10

    熊猫:检查一个字符串是否至少包含一个列表中的两个单词

  11. 11

    检查列表中的每个字符串(所有字符串)是否至少是另一个字符串中的一个子字符串

  12. 12

    如何在 Python 3.5 中删除列表中的最后一个字符串

  13. 13

    取下列表中的对象 - 包含一个字符串 - 列表相比较,

  14. 14

    如何查看一个字符串是否包含列表中的所有子字符串?[Python]

  15. 15

    python list:删除子列表的最后一个字符串

  16. 16

    在Perl中,如何将一个字符串与其他字符串列表进行匹配?

  17. 17

    如何知道一个字符串是否属于python中字符串列表的组合?

  18. 18

    在SQL中,如何检查一个字符串是否是同一表中任何其他字符串的子字符串?

  19. 19

    显示多个字符串列表中的一个字符串

  20. 20

    如何从字符串列表中的每个字符串中删除最后一个字符

  21. 21

    从其他字符串集合的示例中拆分一个字符串

  22. 22

    给定一个字符串列表,如何检查这些字符串是否在列表中?

  23. 23

    向列表中的每个单独的字符串添加一个字符串

  24. 24

    匹配从给定字符串中至少偏离一个字符的任何字符串

  25. 25

    Python-如何遍历列表中字符串的第一个字符

  26. 26

    向数组列表中的每个字符串添加一个字符

  27. 27

    如何在列表中每个字符串的末尾添加一个字符?

  28. 28

    如何检查一个字符串是否包含多个其他字符串?

  29. 29

    网站的JUnit测试包含一个字符串或(专有)其他字符串

热门标签

归档