gpt4 book ai didi

python - 你能从一个字符串创建一个 Python 列表,同时将特定关键字中的字符保持在一起吗?

转载 作者:IT老高 更新时间:2023-10-28 21:57:37 24 4
gpt4 key购买 nike

我想从字符串中的字符创建一个列表,但将特定的关键字放在一起。

例如:

关键词:汽车、公共(public)汽车

输入:

"xyzcarbusabccar"

输出:

["x", "y", "z", "car", "bus", "a", "b", "c", "car"]

最佳答案

使用 re.findall。首先在您的关键字之间交替。

>>> import re
>>> s = "xyzcarbusabccar"
>>> re.findall('car|bus|[a-z]', s)
['x', 'y', 'z', 'car', 'bus', 'a', 'b', 'c', 'car']

如果您有重叠的关键字,请注意此解决方案会找到您遇到的第一个关键字:

>>> s = 'abcaratab'
>>> re.findall('car|rat|[a-z]', s)
['a', 'b', 'car', 'a', 't', 'a', 'b']

您可以通过将 [a-z] 部分替换为您喜欢的任何内容(例如 \w 或简单的 )来使解决方案更通用。 code> 匹配任何字符。

简短的解释为什么这行得通以及为什么正则表达式 '[a-z]|car|bus' 不起作用:正则表达式引擎从左到右尝试交替选项,并且“eager”返回匹配项。这意味着一旦选项之一完全匹配,它就会认为整个交替匹配。此时,它不会尝试任何剩余的选项,而是停止处理并立即报告匹配项。使用 '[a-z]|car|bus',引擎将在看到字符类 [a-z] 中的任何字符时报告匹配,并且永远不会继续检查是 'car' 还是 'bus'也可以匹配。

关于python - 你能从一个字符串创建一个 Python 列表,同时将特定关键字中的字符保持在一起吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35259465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com