我真的很感激对我的问题的一些意见 - 似乎无法使其工作。我需要遍历元组列表,例如:
li = [('a',1),('b',2),('c', 2),('d', 2), ('e', 3), ('f', 3), ('g', 1)]
并希望得到如下结果:
new_li = [('a', 1), ('bcd',2), ('ef',3), ('g',1)]
我根据元组中的第二个值连接字符串。我不想使用 itertools
中的 groupby
,因为即使 g
与 1
相关联,它也不是立即在 a
旁边。
感谢您的所有回复!
最佳答案
IIUC,您可以使用itertools.groupby
,因为它按顺序分组:
例如:
from itertools import groupby
new_li = [
("".join(y[0] for y in g), x) for x, g in groupby(li, key=lambda x: x[1])
]
print(new_li)
#[('a', 1), ('bcd', 2), ('ef', 3), ('g', 1)]
groupby
的 keyfunc 从每个元组中获取数字。然后对于每个组,您可以使用 str.join
将字母连接在一起。
关于python - 遍历元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49786510/