我正在尝试组合列表中彼此相邻的相似字符.我想知道是否有Python方法可以做到这一点?这是一个例子:
test = 'hello###_world###test#test123##'
splitter = re.split("(#)", test)
splitter = filter(None, splitter)
Run Code Online (Sandbox Code Playgroud)
这在splitter变量中返回:
['hello', '#', '#', '#', '_world', '#', '#', '#', 'test', '#', 'test123', '#', '#']
Run Code Online (Sandbox Code Playgroud)
我正在尝试组合哈希,所以列表变成了这样:
['hello', '###', '_world', '###', 'test', '#', 'test123', '##']
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
小智 9
尝试:
splitter = re.split("(#+)", test)
Run Code Online (Sandbox Code Playgroud)
你可以使用itertools.groupby:
import itertools
test = 'hello###_world###test#test123##'
new_result = [''.join(b) for _, b in itertools.groupby(test, key=lambda x:x == '#')]
Run Code Online (Sandbox Code Playgroud)
输出:
['hello', '###', '_world', '###', 'test', '#', 'test123', '##']
Run Code Online (Sandbox Code Playgroud)
您还可以使用re.findall:
import re
result = re.findall('#+|[^#]+', test)
Run Code Online (Sandbox Code Playgroud)
输出:
['hello', '###', '_world', '###', 'test', '#', 'test123', '##']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |