我目前有以下列表:
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'}]
我尝试将dict
与split
一起使用:
d = (dict(x.split('=') for s in a for x in s))
由于键相同,我只得到一本字典,所以我怎样才能将每个列表作为一本字典?
答案 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'}]