pyt*_*sta 4 python iteration loops
我真的很感激我的问题的一些意见 - 似乎无法使它工作.我需要遍历一个元组列表,例如:
li = [('a',1),('b',2),('c', 2),('d', 2), ('e', 3), ('f', 3), ('g', 1)]
Run Code Online (Sandbox Code Playgroud)
并希望得到如下结果:
new_li = [('a', 1), ('bcd',2), ('ef',3), ('g',1)]
Run Code Online (Sandbox Code Playgroud)
我根据元组中的第二个值连接字符串.我不想使用groupby
,itertools
因为即使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)]
Run Code Online (Sandbox Code Playgroud)
groupby
获取每个元组的数字的keyfunc .然后,对于每个组,您可以使用一起加入这些字母str.join
.