python - 基于内部值的python列表分类
问题描述
mylist = [1, 1,2, 2, 2, 15, 15, 15, 15,28, 21, 21, 21, 21, 21, 21, 27, 27, 27]
我希望使列表变为:
mylist = [[1, 1],[2, 2, 2], [15, 15, 15, 15],[28], [21, 21, 21, 21, 21, 21], [27, 27, 27]]
最好的方法是什么?有人能帮助我吗
解决方案
这将正常工作:
from collections import Counter
mylist = [1, 1, 2, 2, 2, 15, 15, 15, 15, 28, 21, 21, 21, 21, 21, 21, 27, 27, 27]
c = Counter(mylist)
mylist = []
for key in c:
mylist.append([key]*c[key])
print(mylist)
输出
[[1, 1], [2, 2, 2], [15, 15, 15, 15], [28], [21, 21, 21, 21, 21, 21], [27, 27, 27]]
或者
mylist = [1, 1, 2, 2, 2, 15, 15, 15, 15, 28, 21, 21, 21, 21, 21, 21, 27, 27, 27, 1, 1, 1, 1]
temp = []
value=mylist[0]
count = 0
for item in mylist:
if(item==value):
count+=1
else:
temp.append([value]*count)
value=item
count=1
temp.append([value]*count)
mylist = temp.copy()
print(mylist)
输出
[[1, 1], [2, 2, 2], [15, 15, 15, 15], [28], [21, 21, 21, 21, 21, 21], [27, 27, 27], [1, 1, 1, 1]]
推荐阅读
- flutter - 颤振数组长度
- python - 有没有办法增加 pyarrow 中的读取超时。获取 AioReadTimeoutError
- haskell - 将参数化类型 List 更改为 Functor 类的实例
- postgresql - 在 Airflow 中找不到 Postgres 模块?
- javascript - 在base64中编码和解码png
- javascript - 根据两个属性返回数组中的目标对象,一个最小值/最大值和一个布尔值
- css - 汉堡下拉css显示属性
- flutter - 从 DataTable 创建 pdf
- javascript - 如何在 Vuejs 和 Expressjs 中上传文件
- r - 如何基于现有数据集创建新数据集