我有这个代码:
from itertools import groupby
a = [[1,'n'],[2,'n'],[3,'n'],[4,'d'],[5,'n']]
b = [list(group) for key, group in groupby(a, lambda x: x[1] if x[1]=='n' else None)]
print(b)
输出:
[[[1, 'n'], [2, 'n'], [3, 'n']], [[4, 'd']], [[5, 'n']]]
预期输出:
[[[1, 'n'], [2, 'n'], [3, 'n']], [[5, 'n']]]
请您参考如下方法:
您将 if 放在了错误的位置。它应该是列表理解的过滤器,而不是 groupby 键函数的一部分。
>>> [list(group) for key, group in groupby(a, lambda x: x[1]) if key=='n']
[[[1, 'n'], [2, 'n'], [3, 'n']], [[5, 'n']]]
