切片字符串列表并填充字典值

2024-09-30 01:34:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串列表和一个字典,如下所示:

items_1 = [[1234,cat,air,here],[1234,cat2,air2,here2],[1234,cat3,air3,here3],[1235,dog1,rer1,type1],[1235,dog2,rer2,type2],[1235,dog3,rer3,type3]]

字典={'1234':[],'1235':[]

我想这样做:

items_1 = {1234:[[cat,air,here],[cat2,air2,here2],[cat3,air3,here3]],1235:[[dog1,rer1,type1],[dog2,rer2,type2],[dog3,rer3,type3]]

到目前为止,我有以下代码:

results_2=[]
for items_keyes in dictionary.keys():
    for index, list_id in enumerate(items_1):
        if items_keyes == results[index-1][0]:
           ID_to_fill[items_keyes[-1]].append(results)

但输出与预期不符。有人能帮我吗


Tags: 字典hereitemsairresultscatcat2cat3
2条回答

我会使用defaultdict

from collections import defaultdict

d = defaultdict(list)
for i in my_list:
    k = i[0]
    v = i[1:]
    d[k].append(v)

这一衬里应提供所需的输出:

>>> {x: [v[1:] for v in items_1 if v[0] == x] for x in set(y[0] for y in items_1)}
{1234: [['cat', 'air', 'here'],
  ['cat2', 'air2', 'here2'],
  ['cat3', 'air3', 'here3']],
 1235: [['dog1', 'rer1', 'type1'],
  ['dog2', 'rer2', 'type2'],
  ['dog3', 'rer3', 'type3']]}

相关问题 更多 >

    热门问题