将字符串拆分为元组(上、下)“ABCDefgh”。Python 2.7.6

2024-09-28 01:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

my_string = 'ABCDefgh'
desired = ('ABCD','efgh')

我能想到的唯一方法是创建一个for循环,然后逐个扫描和检查字符串中的每个元素,然后添加到字符串中,然后创建元组。有没有更有效的方法?在

它将始终采用UPPERlower格式


Tags: 方法字符串元素forstringmy格式元组
3条回答

因为我把^{}扔到任何东西上:

>>> my_string = 'ABCDefgh'
>>> from itertools import groupby
>>> [''.join(g) for k,g in groupby(my_string, str.isupper)]
['ABCD', 'efgh']

(这里有点过分,但可以很好地扩展到更复杂的问题。)

简单方法(两次通过):

>>> import itertools
>>> my_string = 'ABCDefgh'
>>> desired = (''.join(itertools.takewhile(lambda c:c.isupper(), my_string)), ''.join(itertools.dropwhile(lambda c:c.isupper(), my_string)))
>>> desired
('ABCD', 'efgh')

有效方式(一次通过):

^{pr2}$
print re.split("([A-Z]+)",my_string)[1:]

相关问题 更多 >

    热门问题