我有一个元组列表

 a=[('a', 0), ('c', 1), ('d', 0), ('b', 1), ('t',1), ('j',2), ('k',3), ('s', 4), ('l',1), ('y',1), ('r',2), ('b',3), ('k',4)]

我想要像这样的输出

 [[1,1,1,2,3,4],[1,1,2,3,4]] 

和相应的字母

 [['c', 'b', 't', 'j', 'k', 's'], ['l', 'y', 'r', 'b', 'k']]

我需要删除中间的0,并且模式总是从1开始

推荐答案

使用简单循环并跟踪之前的非零值:

letters = []
numbers = []
prev = 2
for l,n in a:
    if n == 0:
        continue
    elif prev > 1 and n == 1:
        letters.append([])
        numbers.append([])
    letters[-1].append(l)
    numbers[-1].append(n)
    prev = n

letters
# [['c', 'b', 't', 'j', 'k', 's'], ['l', 'y', 'r', 'b', 'k']]

numbers
# [[1, 1, 1, 2, 3, 4], [1, 1, 2, 3, 4]]

Python相关问答推荐

在pandas DataFrame上运行apply()时如何访问DateTime索引?

在Windows上启动新Python项目的正确步骤顺序

遵循轮廓中对象方向的计算线

指示组内的rejected_time是否在creation_timestamp后5分钟内

如何在图片中找到这个化学测试条?OpenCV精明边缘检测不会绘制边界框

try 与gemini-pro进行多轮聊天时出错

使用numpy提取数据块

从收件箱中的列中删除html格式

如何访问所有文件,例如环境变量

优化pytorch函数以消除for循环

对所有子图应用相同的轴格式

将9个3x3矩阵按特定顺序排列成9x9矩阵

优化器的运行顺序影响PyTorch中的预测

Scrapy和Great Expectations(great_expectations)—不合作

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

如何并行化/加速并行numba代码?

使用Python从URL下载Excel文件

Python中的变量每次增加超过1

如何使用SentenceTransformers创建矢量嵌入?

在Python中调用变量(特别是Tkinter)