python - 获取字符串的子字符串
问题描述
例如:字符串 = 'AbcDEfGhIJK'
我想获取一个列表: ['A','bc','DE','f','G','h','IJK']
我正在尝试考虑这样做的逻辑,但到目前为止还没有运气。
编辑:我不知道正则表达式,所以我只是使用循环这就是我想出的,虽然它没有给出最后一个'IJK'
u_count = 0
l_count = 0
l_string = ''
u_string = ''
output = []
data = 'AbcDEfGhIJK'
for c in data:
if(c.isupper()):
if(l_count !=0):
output.append(l_string)
l_count = 0
l_string = ''
u_string += c
u_count += 1
if(c.islower()):
if(u_count !=0):
output.append(u_string)
u_count = 0
u_string = ''
l_string +=c
l_count += 1
print(output)
解决方案
您可以使用itertools.groupby来做到这一点:
from itertools import groupby
string = 'AbcDEfGhIJK'
out = [''.join(group) for key, group in groupby(string, key=lambda c: c.islower())]
print(out)
# ['A', 'bc', 'DE', 'f', 'G', 'h', 'IJK']
在这里,groupby
将对给出相同输出的字符进行分组islower()
推荐阅读
- php - 通过 Ajax 运行 php 函数
- oracle - 在 oracle 中导入和替换包和过程
- html - 与预填充输入重叠的浮动标签
- sql - 根据类型列将结果连接并转出到不同的列中
- ios - SCLAlertView - 如何格式化 addTextField - 电话号码
- javascript - 如何将转换后的字符串转换回数组?
- vb.net - WebSocket4Net 错误 - HTTP /1.1 200,然后连接关闭
- python - 工作 os.path.exist 命令
- c - 如何在 C 中用相同的值(非 0)集成结构
- python - Pandas - 如何忽略 read_excel 和 read_csv 中的百分比