将内部成员连接到Python中的对象列表中

时间:2017-09-11 22:21:15

标签: python

我有以下数组:

[
  {"Name": "abc", "Age": 10},
  {"Name": "xyz", "Age": 12},  
  {"Name": "def", "Age": 15}
]

我想用它创建以下数组:

["abc","xyz","def"]

即从每个对象中取出名称字段。除了通过循环之外,还有更简单的方法吗?

4 个答案:

答案 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],
    ]

丑陋,不是吗?