我有一个列表,我想在其他列表中获取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']
答案 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)
使用map
和str.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]