如何从其他列表中获取python列表,其中dict为元素

时间:2014-08-15 16:59:33

标签: python

我有一个列表,我想在其他列表中获取key = value

例如:

my_list = [
    {'Key': 'Apple', 'Value': 'Fruit'},
    {'Key': 'Car', 'Value': 'Automobile'},
    {'Key': 'Dog', 'Value': 'Animal'},
    {'Key': 'Bolt', 'Value': 'Runner'}]

我有一个my_list,我希望输出为:

new_list = ['Apple=Fruit', 'Car=Automobile', 'Dog=Animal', 'Bolt=Runner']

3 个答案:

答案 0 :(得分:2)

将列表理解与join

一起使用
>>> my_list=[{'Key':'Apple','Value':'Fruit'},
    {'Key':'Car','Value':'Automobile'},
    {'Key':'Dog','Value':'Animal'},
    {'Key':'Bolt','Value':'Runner'}]
>>> new_list = ['='.join([i['Key'], i['Value']]) for i in my_list]
>>> new_list
['Apple=Fruit', 'Car=Automobile', 'Dog=Animal', 'Bolt=Runner']

我对你的命名感到有点困惑。使用名称'Key''Value',您实际上打算制作dict吗?当您的预期输出被写入(以及我上面的代码生成)时,它是一个串联字符串列表。

如果你确实想要从这些中dict,你可以做类似的事情

my_list=[{'Key':'Apple','Value':'Fruit'},
    {'Key':'Car','Value':'Automobile'},
    {'Key':'Dog','Value':'Animal'},
    {'Key':'Bolt','Value':'Runner'}]
>>> new_dict = {i['Key'] : i['Value'] for i in my_list}
>>> new_dict
{'Car': 'Automobile', 'Bolt': 'Runner', 'Apple': 'Fruit', 'Dog': 'Animal'}

答案 1 :(得分:1)

使用mapstr.format替代实施:

>>>  my_list=[{'Key': 'Apple', 'Value': 'Fruit'},
              {'Key': 'Car', 'Value': 'Automobile'},
              {'Key': 'Dog', 'Value': 'Animal'},
              {'Key': 'Bolt', 'Value': 'Runner'}]

>>> map(lambda d: "{Key}={Value}".format(**d), my_list)
['Apple=Fruit', 'Car=Automobile', 'Dog=Animal', 'Bolt=Runner']

或者(从长远来看可能会更多地使用):

>>> {d['Key']: d['Value'] for d in my_list}
{'Car': 'Automobile', 'Bolt': 'Runner', 'Apple': 'Fruit', 'Dog': 'Animal'}

答案 2 :(得分:1)

使用str.format并访问每个dict的值

["{}={}".format(d.values()[1],d.values()[0]) for d in my_list]
['Apple=Fruit', 'Car=Automobile', 'Dog=Animal', 'Bolt=Runner']

或使用键:

["{}={}".format(d["Key"],d["Value"]) for d in my_list]