因此,从字符串列表开始,如下所示
string_list = [“休息”,“休息”,“看”,“看”,“它”,“吐”]
我想从列表中删除作为另一个元素的子字符串的任何元素,例如给出结果…
string_list = [“休息”,“看上去”,“吐”]
我有一些实现此目的的代码,但是它很丑陋,而且可能不必要地复杂。有没有一种简单的方法可以在Python中做到这一点?
第一个构建块:子字符串。
您可以in
用来检查:
>>> '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=html" target="_blank">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
问题内容: 我有一个清单 我正在尝试删除其超字符串已经在列表中的字符串。在这种情况下,结果应为: 我已经写了代码: 但它似乎不起作用。我读过,我们无法在列表上进行迭代时将其删除。因此,副本,而这是我的原始列表。 问题答案: l=[‘abc’,’abcdef’,’def’,’defdef’,’polopolo’] print [j for i, j in enumerate(l) if all(j
问题内容: 可以说我有这个单词列表: 比我有文字 是否有匹配stopWords并在忽略大小写时将其删除的方法;像这样的地方?: 结果: 如果您了解正则表达式,效果很好,但我真的更喜欢像Commons解决方案这样的东西,它更注重性能。 顺便说一句,现在我正在使用此通用方法,该方法缺少适当的不区分大小写的处理: 问题答案: 这是不使用正则表达式的解决方案。我认为它不如我的其他答案,因为它更长且不清楚,
问题内容: 我必须采用以下形式的大量单词: 然后使用strip功能,将其转换为: 我以为我写的东西行得通,但是我不断收到错误消息: “’list’对象没有属性’strip’” 这是我尝试的代码: 问题答案:
问题内容: 我想从python中的字符串列表中删除所有空字符串。 我的想法如下: 有没有更多的Python方式可以做到这一点? 问题答案: 我会用: Python 3从返回一个迭代器,因此应包装在对的调用中
本文向大家介绍如何从Python的字符串列表中删除空字符串?,包括了如何从Python的字符串列表中删除空字符串?的使用技巧和注意事项,需要的朋友参考一下 您可以使用过滤器过滤掉空字符串。filter的第一个参数是lambda,它将告诉您字符串是否为空。您可以将此lambda传递为None,bool,len或检查字符串是否为空的函数。您可以通过以下几种方式进行检查: 请单击下面的链接以查看带有简单
本文向大家介绍在Python中从元组中删除字符串,包括了在Python中从元组中删除字符串的使用技巧和注意事项,需要的朋友参考一下 当需要从元组中删除字符串时,可以使用列表理解和'type'方法。 列表可用于存储异构值(即,任何数据类型的数据,例如整数,浮点数,字符串等)。 元组列表基本上包含包含在列表中的元组。 列表理解是迭代列表并对其执行操作的一种快捷方式。 'type'方法返回作为参数传递给