首页 > 解决方案 > 基于特定键的列表中的列表

问题描述

嗨,我是编程新手。我有问题。我不知道这个问题有什么更好的解决方案。问题是这样的..我有一个清单说,

list = ['a', '123', '643', 'b', '890', '234', '123', 'd', '432', '678' ]

所以我想制作 3 个列表或一个 json 对象,实际上可能的情况请提出更好的选择。这个想法是

list_a = ['123', '643']
list_b = ['890', '234', '123']
list_d = ['432', '678']

或者,

list_ob = {"a": ["123", "643"], "b": ["890", "234", "123"], "d": ["432", "678"] }

这里 a, b, d 只是一些特定的字符或者可以是单词。请帮帮我。

标签: pythonlist

解决方案


这很容易达到,您只需要循环检查它是否为 alpha,然后将 alpha 拾取为key. 如下所示:

In [92]: key = ''
    ...: b = {}
    ...: a = ['a', '123', '643', 'b', '890', '234', '123', 'd', '432', '678' ]
    ...: for i in a:
    ...:   
    ...:     if i.isalpha():
    ...:         b[i]=[]
    ...:         key = i
    ...:     else:
    ...:         b[key].append(i)
In [94]: b
Out[94]: {'a': ['123', '643'], 'b': ['890', '234', '123'], 'd': ['432', '678']}

要获得第二个预期结果,只需简单地执行以下操作:

In [95]: b.values()
Out[95]: [['123', '643'], ['890', '234', '123'], ['432', '678']]

推荐阅读