Python 仅获取每个字典中的值
Python get only values in each dictionary
我打算获取数组列表中每个字典的值并将这些值放入新字典中。
每个字典中有两个键,两个值。
这是我的array_list。
[{'Name': 'email',
'Value': 'mail@outlook.com'},
{'Name': 'name',
'Value': 'tester'},
{'Name': 'address',
'Value': 'abc'}]
我的预期结果(获得每个字典中的两个值):
{'email': 'mail@outlook.com',
'name': 'tester',
'address': 'abc'}
我当前的代码:
outcome = {}
x = ""
for i in range(len(array_list)):
for key,value in array_list[i].items():
if key == 'Value':
x = value
elif key == 'Name':
outcome[value] = x
我仍然无法获得预期的结果。有帮助吗?
l = [{'Name': 'email',
'Value': 'mail@outlook.com'},
{'Name': 'name',
'Value': 'tester'},
{'Name': 'address',
'Value': 'abc'}]
{k['Name'] : k['Value'] for k in l}
结果是
{'address': 'abc', 'email': 'mail@outlook.com', 'name': 'tester'}
你几乎是正确的。只是在 if else 中有一些问题。
编写代码后,您应该尝试自己模拟您的代码。请仔细查看您内部的 for 循环。对于每次迭代,Name 或 Value 都将被设置为 if 和 elif 是互斥的。但要求是在每次迭代中创建键值。
outcome = {}
array_list = [{'Name': 'email',
'Value': 'mail@outlook.com'},
{'Name': 'name',
'Value': 'tester'},
{'Name': 'address',
'Value': 'abc'}]
for i in range(len(array_list)):
keys = array_list[i].keys()
if 'Name' in keys and 'Value' in keys:
outcome[array_list[i]['Name']] = array_list[i]['Value']
和你的代码差不多,但是我的思路不一样。
我打算获取数组列表中每个字典的值并将这些值放入新字典中。
每个字典中有两个键,两个值。
这是我的array_list。
[{'Name': 'email',
'Value': 'mail@outlook.com'},
{'Name': 'name',
'Value': 'tester'},
{'Name': 'address',
'Value': 'abc'}]
我的预期结果(获得每个字典中的两个值):
{'email': 'mail@outlook.com',
'name': 'tester',
'address': 'abc'}
我当前的代码:
outcome = {}
x = ""
for i in range(len(array_list)):
for key,value in array_list[i].items():
if key == 'Value':
x = value
elif key == 'Name':
outcome[value] = x
我仍然无法获得预期的结果。有帮助吗?
l = [{'Name': 'email',
'Value': 'mail@outlook.com'},
{'Name': 'name',
'Value': 'tester'},
{'Name': 'address',
'Value': 'abc'}]
{k['Name'] : k['Value'] for k in l}
结果是
{'address': 'abc', 'email': 'mail@outlook.com', 'name': 'tester'}
你几乎是正确的。只是在 if else 中有一些问题。
编写代码后,您应该尝试自己模拟您的代码。请仔细查看您内部的 for 循环。对于每次迭代,Name 或 Value 都将被设置为 if 和 elif 是互斥的。但要求是在每次迭代中创建键值。
outcome = {}
array_list = [{'Name': 'email',
'Value': 'mail@outlook.com'},
{'Name': 'name',
'Value': 'tester'},
{'Name': 'address',
'Value': 'abc'}]
for i in range(len(array_list)):
keys = array_list[i].keys()
if 'Name' in keys and 'Value' in keys:
outcome[array_list[i]['Name']] = array_list[i]['Value']
和你的代码差不多,但是我的思路不一样。