python - 使用来自另一个列表的信息生成列表的 Python 问题
问题描述
我想用 python 生成一个基于另一个列表中的信息的列表。以下示例应演示我要传输的信息:
给出了以下列表:
list_a=[0,0,0,0,0,0,0,0,0,1,2,3,4,0,0,0,0,1,2,0,0,0,0,1,2,3,4,5,0,0,0]
然后,我要生成的列表应如下所示:
list_b=[0,0,0,0,0,0,0,0,0,4,3,2,1,0,0,0,0,2,1,0,0,0,0,5,4,3,2,1,0,0,0]
我是这样开始的:
list_b=[]
list_b = [0] * list_a.__len__() #create a list of nulls
for i in range (list_a.__len__()):
if list_a(i)!=0:
if list_a(i+1)=0:
list_b.insert(i-(list_a[i]-1),list_a[i])
但是后来我只将第一个元素插入 list_b 并且仍然需要插入所有后续元素(例如插入 4 并且仍然需要插入 3、2、1)并且解决方案/代码似乎太乱了。
任何人都知道一个优雅的解决方案?
解决方案
按零分组并反转每个组。
>>> [x for _, g in itertools.groupby(list_a, bool) for x in list(g)[::-1]]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 2, 1, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 5, 4, 3, 2, 1, 0, 0, 0]
推荐阅读
- r - 如何使用汇总命令平均一组列并排除 R 中的其他特定列?
- docker - 如何在 docker compose 中使用 docker image 指定环境变量
- android - 如何在应用程序的背景中添加模糊效果?
- c++ - Opencv没有匹配的函数调用FastFeatureDetector
- monitoring - 是否可以在 Grafana 中绘制比率趋势图?
- json - 将 JSON 键的值存储在 Bash 变量中
- python - Python - 使用 ajax 将选择列表中的选定项目发布到 Flask
- python - 当遇到 PDF 中的图像时,pyttsx3 和 PyPDF4 停止 PDF 的文本到语音转换
- javascript - MongoDb 在子文档上返回匹配结果和匹配结果
- flutter - 切换按钮颤动不起作用