python – 检查String是否是列表中元素的串联

python – 检查String是否是列表中元素的串联,第1张

概述是否有一种优雅的方式(最好是 pythonic)来检查String s是否是一组L的子集的元素串联? L的元素可能在s中出现不止一次. 例如: L = set(["a", "ab", "c", "e"]) 然后“abac”是L的子集的元素的有效串联 “aaaaaaa”也是一种有效的连接. 但“广告”不是因为“d”不在L. import reL = ["no", "force", "in", "t 是否有一种优雅的方式(最好是 pythonic)来检查String s是否是一组L的子集的元素串联? L的元素可能在s中出现不止一次.

例如:

L = set(["a","ab","c","e"])

然后“abac”是L的子集的元素的有效串联

“aaaaaaa”也是一种有效的连接.

但“广告”不是因为“d”不在L.

解决方法
import reL = ["no","force","in","the","verse","can","stop","me"]# make this: "(?:no|force|in|the|verse|can|stop|me)*$"r = re.compile( "(?:" + "|".join(L) + ")*$")r.match("shiny")  # -> Noner.match("canme")  # -> not None

这适用于给定的字符串集. re库中有一个函数引用字符串(转义| etc),以便您可以在运行时安全地创建这样的表达式.

r = re.compile( "(?:"  + "|".join( re.escape(s) for s in L) + ")*$" )

无论子串出现多少次,它都会匹配;如果某些字符串是其他字符串的前缀,则可能会出现奇怪的结果,等等.它可能有令人讨厌的运行时.如果所有字符串在开头都很容易区分,那就不应该.

总结

以上是内存溢出为你收集整理的python – 检查String是否是列表中元素的串联全部内容,希望文章能够帮你解决python – 检查String是否是列表中元素的串联所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存