如何使用python将列表列表拆分为一个字典中的列表中的每个列表

时间:2018-07-11 03:27:45

标签: python list dictionary

我目前有以下列表:

a = [[ 'abc=lalalla', 'appa=kdkdkdkd', 'kkakaka=oeoeoeo'],[ 'abc=lalalla', 'appa=kdkdkdkd', 'kkakaka=oeoeoeo' ],[ 'abc=lalalla', 'appa=kdkdkdkd', 'kkakaka=oeoeoeo']]

我想将其转换为该词典:

[{'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'},
 {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'},
 {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'}]

我尝试将dictsplit一起使用:

d = (dict(x.split('=') for s in a for x in s))

由于键相同,我只得到一本字典,所以我怎样才能将每个列表作为一本字典?

4 个答案:

答案 0 :(得分:3)

现在,您在列表的展平版本上使用dict,但是在拆分后,您需要在每个子列表上分别使用它:

a = [dict([i.split('=') for i in j]) for j in a]

结果:

[{'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'},
 {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'},
 {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'}]

答案 1 :(得分:1)

一个。您的列表a是无效的python语法。

两个。在a的每个列表中,它包含字符串,因此您必须将其除以'='才能得到键和值。

a = [[ 'abc=lalalla', 'appa=kdkdkdkd', 'kkakaka=oeoeoeo'],[ 'abc=lalalla', 'appa=kdkdkdkd', 'kkakaka=oeoeoeo'],[ 'abc=lalalla', 'appa=kdkdkdkd', 'kkakaka=oeoeoeo']]
print(list(map(lambda x: dict(zip([i.split('=')[0] for i in x],[i.split('=')[1] for i in x])),a)))

输出:

[{'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'}, {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'}, {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'}]

答案 2 :(得分:0)

QImage image;
image.load(path);
if (image.isNull())
{
    //it enters herer
 }

答案 3 :(得分:0)

您还可以使用numpy的{​​{3}}和dict comprehension

[{k:v for k,v in np.core.defchararray.split(lis,'=')} for lis in a]

[{'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'},
 {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'},
 {'abc': 'lalalla', 'appa': 'kdkdkdkd', 'kkakaka': 'oeoeoeo'}]