我有字符串s = 'a3c9b1c1'
我期望的输出是a3b1c10
,它必须按字母表的顺序排序
我能转换成元组
i = iter(t)
m = list(zip(i, i))
print (m)
from collections import defaultdict
d = defaultdict(list)
for k, v in m:
d[k].append((int(v)))
d
我的朋友出去了
defaultdict(list, {'a': [3], 'c': [9, 1], 'b': [1]})
d = {k:tuple(v) for k, v in d.items()}
print (d)
我的朋友出去了
{'a': (3,), 'c': (9, 1), 'b': (1,)}
我添加了下面的代码
for k,v in d.items():
t = ("{}{}".format(k, sum(v)))
print (t,end='')
如何使用相同的键添加值?或者没有end=''
出去
如果字母出现两位(或更多)数字,则您的方法将失败:
相反,您可以使用正则表达式分隔字母-数字对,然后对相同的字母求和:
输出
假设这是一个XY问题,而实际输入是} 就更容易了:
'aaacccccccccbc'
(以任何顺序),那么使用^{输出
相关问题 更多 >
编程相关推荐