我有一个更基本的游程编码问题,与许多关于这个主题的问题已经得到了回答。基本上,我是想抓住绳子
string = 'aabccccaaa'
让它回来
^{pr2}$我想,如果我能像下面所示的那样将所有的信息放入一个列表中,我就可以很容易地返回a2b1c4a3
test = [['a','a'], ['b'], ['c','c','c','c'], ['a','a','a']]
到目前为止,我想出了下面的代码,但不知道是否有人能帮我弄清楚如何让它创建上面所示的输出。在
def string_compression():
for i in xrange(len(string)):
prev_item, current_item = string[i-1], string[i]
print prev_item, current_item
if prev_item == current_item:
<HELP>
如果有人对如何更有效地解决这样一个问题有任何其他意见,我会全神贯注地听!在
您可以使用^{} :
这将生成每个字母组作为列表列表。在
您可以一步到位地将其转化为RLE:
^{pr2}$每个
k
都是被分组的字母,每个g
都是产生N次相同字母的迭代器;sum(1 for _ in g)
表达式以最有效的方式计算这些字母。在演示:
考虑使用^{} 工具。在
演示
编码
^{pr2}$可选的itertools/功能样式:
注意:} 安装的第三方库。
more_itertools
是可通过^{相关问题 更多 >
编程相关推荐