Python中是否有任何智能打印方法?

Sam*_*uel 0 python list

我想要一个智能打印列表.例如:

a=[2,2,2,1,1,1,1,1,1,1]
Run Code Online (Sandbox Code Playgroud)

我想要的打印结果如下: 2*3, 1*7

不喜欢: 2,2,2,1,1,1,1,1,1

Joh*_*ooy 11

>>> a = [2,2,2,1,1,1,1,1,1,1]    
>>> from itertools import groupby
>>> ["{}*{}".format(k, sum(1 for x in g)) for k, g in groupby(a)]
['2*3', '1*7']
Run Code Online (Sandbox Code Playgroud)

或者为了代码重用的利益:

>>> def rle(seq):
...     return ((k, sum(1 for x in g)) for k, g in groupby(seq))
... 
>>> ["{}*{}".format(*x) for x in rle(a)]
['2*3', '1*7']
Run Code Online (Sandbox Code Playgroud)

  • 我非常高兴"在无限的迭代中运行它,风险自负!". (2认同)
  • @alecxe,不,不.关于不相交的问题,这个问题是不明确的,所以任何解释都可以在现在运作 (2认同)