【发布时间】:2020-02-25 14:34:19
【问题描述】:
我想在 python 中拆分一个字符串并将其放入字典中,这样键是两个大写字母之间的任何字符块,值应该是这些块在字符串中出现的次数。
例如:string = 'ABbACc1Dd2E' 应该返回这个:{'A': 2, 'Bb': 1, 'Cc1': 1, 'Dd2': 1, 'E': 1}
到目前为止,我已经找到了两个可行的解决方案(见下文),但我正在寻找一个更通用/优雅的解决方案,可能是单行正则表达式条件。
谢谢
【问题讨论】:
-
print ({i:len(list(j)) for i,j in groupby (sorted(re.findall (r'[A-Z][a-z]*\d*', string)))}) -
随意添加它作为单独的答案(你可以标记它Community wiki) - 如果你也可以解释它!找出这个表达式是如何工作的应该是一个值得练习的练习。