我有以下数组:
[
{"Name": "abc", "Age": 10},
{"Name": "xyz", "Age": 12},
{"Name": "def", "Age": 15}
]
我想用它创建以下数组:
["abc","xyz","def"]
即从每个对象中取出名称字段。除了通过循环之外,还有更简单的方法吗?
答案 0 :(得分:1)
您可以使用单行列表理解:
d = [
{"Name": "abc", "Age": 10},
{"Name": "xyz", "Age": 12},
{"Name": "def", "Age": 15}
]
data = [i["Name"] for i in d]
输出:
['abc', 'xyz', 'def']
答案 1 :(得分:1)
你在字典语法中有错误,我假设你想使用字符串键。
可以使用列表推导来解决问题:
data = [
{'Name': 'abc', 'Age': 10},
{'Name': 'xyz', 'Age': 12},
{'Name': 'def', 'Age': 15}
]
print([item['Name'] for item in data]) #=> ['abc', 'xyz', 'def']
您可以使用map
来避免使用循环,但它不是pythonic:
map(lambda i: i['Name'], data)
答案 2 :(得分:0)
your_nested_list = [
{Name: "abc", Age: 10},
{Name: "xyz", Age: 12},
{Name: "def", Age: 15}
]
result = []
for dict in your_nested_list:
result.append(dict[Name])
在此代码中,您将迭代嵌套列表中的字典并附加键Name
的值。
答案 3 :(得分:0)
没有循环 - 但您需要事先知道列表中的词典,并确保中的每一个都是关键 Name
:
your_nested_list = [
{Name: "abc", Age: 10},
{Name: "xyz", Age: 12},
{Name: "def", Age: 15}
]
result = [
your_nested_list[0][Name],
your_nested_list[1][Name],
your_nested_list[2][Name],
]
丑陋,不是吗?