我有一个很大的二维列表,如 [[name, lower_limit, upper_limit], ...]。 我想合并相同 name 的项目列表。
例如,转换
a = [['a1', 1, 10],['a2', -1, 20],['a1', 0, 8], ['a2', 0, 1]]
到
[['a1', 0, 10], ['a2', -1, 20]]
合并相同name的项目列表,将它们的最小下限和最大上限分别作为合并的下限和上限。
请您参考如下方法:
L = [['a1', 1, 10],['a2', -1, 20],['a1', 0, 8], ['a2', 0, 1]]
d = {}
for name, low, high in L:
if name not in d:
d[name] = [low, high]
continue
if low<d[name][0]: d[name][0] = low
if high>d[name][1]: d[name][1] = high
