Skip to main content
 首页 » 编程设计

python之通过其中一列合并 2d 列表的 pythonic 方法是什么

2025年05月04日14grandyang

我有一个很大的二维列表,如 [[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