python 有没有一个命令式可以让一个list例如[1,1,2,2,2,3,3]变成[[1,2],[2,3],[3,2]]?

就是第二个list里包含的list的第一位是第i位数,第二位是它的个数

有两种方法

第一种 列表a需要排好序,用itertools的groupby函数

import itertools

a=[1,1,2,2,2,3,3]

print([[group,len(list(items))] for group,items in itertools.groupby(a)])

源代码


第二种 列表a不需要排好序,用list的count函数

a=[1,1,2,2,2,3,3]

print([[i,a.count(i)] for i in sorted(set(a))])


温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-01
你可以用groupby ,
数组已经有序了就不用排序了
你可以查查,这是我能想到最简单的方法
相似回答