You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将指定Python字典转换为目标格式的嵌套列表?

解决Python字典转指定嵌套列表的问题

嘿,我明白你的需求啦——你想把字典里的每个键和它对应的列表元素合并成一个子列表,最终得到嵌套的列表结构对吧?

先说说你现有代码的问题:你原来的代码里,output = [key, value]是把整个值列表作为两个独立元素放进子列表里,然后第二个循环又把这些元素逐个拆解出来,所以最后得到的是一个半扁平的混合列表,不是你想要的结构。

最简单的解决方案:列表推导式

用一行代码就能搞定,简洁又高效:

dict1 = {'fred': ['andrew', 'judy'], 'andrew': ['judy', 'george'], 'judy': ['george'], 'george': ['john']}
result = [[key] + value for key, value in dict1.items()]
print(result)

运行后就能得到你预期的输出:

[['fred', 'andrew', 'judy'], ['andrew','judy', 'george'], ['judy', 'george'], ['george', 'john']]

原理很简单:[key]把单个的键转换成只有一个元素的列表,然后用+运算符和对应的value列表拼接,这样就把键和所有值元素合并成了一个子列表。

用循环实现(更直观)

如果你更喜欢分步的循环写法,也可以这样做:

dict1 = {'fred': ['andrew', 'judy'], 'andrew': ['judy', 'george'], 'judy': ['george'], 'george': ['john']}
result = []
for key, value in dict1.items():
    # 把键和值列表的元素合并成新的子列表
    sub_list = [key] + value
    result.append(sub_list)
print(result)

这个逻辑和列表推导式完全一致,只是把循环展开写了,更容易理解每一步的操作。

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

火山引擎 最新活动