如何在Python中按字符切片字符串? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中按字符切片字符串? [重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
有一个包含一个或多个字符的字符串。我想切片列表,以便相邻的相同字符在同一个元素中。例如:
'a' -> ['a']
'abbbcc' -> ['a', 'bbb', 'cc']
'abcabc' -> ['a', 'b', 'c', 'a', 'b', 'c']
我如何在Python中创建它?
答案
from itertools import groupby
s = 'abccbba'
print([''.join(v) for _, v in groupby(s)])
# ['a', 'b', 'cc', 'bb', 'a']
另一答案
可以用re.finditer()实现
import re
s='aabccdd'
print([m.group(0) for m in re.finditer(r"(w)1*", s)])
#['aa', 'b', 'cc', 'dd']
另一答案
没有任何模块和使用for循环也可以用有趣的方式完成:
l=[]
str="aabccc"
s=str[0]
for c in str[1:]:
if(c!=s[-1]):
l.append(s)
s=c
else:
s=s+c
l.append(s)
print(l)
另一答案
还有一个替代解决方案。你不需要在python2中导入它。在python3中,您需要从functools导入。
from functools import reduce # in python3
s='aaabccdddddaa'
reduce(lambda x,y:x[:-1]+[x[-1]+y] if len(x)>0 and x[-1][-1]==y else x+[y], s, [])
另一答案
t=input()
c=[t[0]]
for i in range(1,len(t)):
if t[i]==c[-1][0]:
c[-1]=c[-1]+t[i]
else:
c.append(t[i])
print(c)
以上是关于如何在Python中按字符切片字符串? [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在python中如何将list中的元素根据指定字符进行切片?
Spark - 如何使用列对数据框中的字符串进行切片[重复]