You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于元素值合并Python嵌套列表中相同标识的子列表?

合并嵌套子列表的解决方法

问题根因

你代码生成的字典出现嵌套列表,是因为使用了append()方法:该方法会将传入的整个列表作为单个元素添加到目标列表末尾,而你需要的是将传入列表的元素逐个追加到目标列表中,改用extend()方法即可解决这个问题。

修正后完整代码

lis = [['steve','reporter','12','34','22','98'],['megan','arch','44','98','32','22'],['jack','doctor','80','32','65','20'],['steve','dancer','66','31','54','12']]
new_dic = {}

for item in lis:
    name = item[0]
    # 直接切片取首元素之外的所有内容,无需手动逐个写索引
    rest_content = item[1:]
    if name in new_dic:
        # 用extend逐个追加元素,不会产生嵌套
        new_dic[name].extend(rest_content)
    else:
        new_dic[name] = rest_content.copy()

# 将字典转换为目标格式的嵌套列表
new_lis = [[name] + values for name, values in new_dic.items()]
print(new_lis)

运行输出

[['steve', 'reporter', '12', '34', '22', '98', 'dancer', '66', '31', '54', '12'], ['megan', 'arch', '44', '98', '32', '22'], ['jack', 'doctor', '80', '32', '65', '20']]

补充说明

Python 3.7及以上版本默认会保留字典的插入顺序,最终输出的列表顺序和原列表中名字首次出现的顺序完全一致,如果你使用的是更早的Python版本,可以引入collections.OrderedDict替代普通字典来保证顺序一致。

内容的提问来源于stack exchange,提问作者xionxavier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:06:02