【发布时间】:2019-11-27 06:46:08
【问题描述】:
我有一个包含六个列表的列表
lst = [
['2.2.5', '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All'],
['2.2.6', '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All'],
['2.2.5', '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App'],
['2.2.6', '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App'],
['2.2.5', '/usr/local/share/dotnet/shared/Microsoft.NETCore.App'],
['2.2.6', '/usr/local/share/dotnet/shared/Microsoft.NETCore.App']
]
我正在尝试将其转换为
{
"2.2.5": ['/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.5'],
"2.2.6": ['/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.6',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.6',
'/usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.6']
}
到目前为止,这是我所做的:
to_dict = {key[0]: [value[1] + '/' + value[0] for value in lst] for key in lst}
这会返回
{'2.2.5': ['/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.6',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.6',
'/usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.6'],
'2.2.6': ['/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.6',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.6',
'/usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.5',
'/usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.6']}
内部循环从索引1 到lst 添加所有内容。我应该如何添加适合其键的值?
【问题讨论】:
-
啊!在 Google 中搜索时应该使用元组
-
dct = dict((a[0], [b[1]+'/'+a[0] for b in lst if b[0] == a[0]]) for a in lst) -
@AniketSahrawat 你能添加这个作为答案吗?这是一个很好的实现
标签: python