繁体   English   中英

从列表列表中提取元素

[英]Extract elements from list of lists

我有一个 object ,我想从 object 中提取一些元素以列出。

我有这个

[["Test_1", 
  {"name": "Test_level_1", "value": 10}, 
  {"name": "Test_level_1 again", "value": 15}], 
 ["Test_2", 
  {"name": "Test_level_2", "value": 1}, 
  {"name": "Test_level_2 again", "value": 5}]]

我试图拥有这个

["Test_level_1", 
 "Test_level_1 again", 
 "Test_level_2", 
 "Test_level_2 again"]

这样做的方法是什么?

列表推导将很好地涵盖这一点。

data = [["Test_1", 
  {"name": "Test_level_1", "value": 10}, 
  {"name": "Test_level_1 again", "value": 15}], 
 ["Test_2", 
  {"name": "Test_level_2", "value": 1}, 
  {"name": "Test_level_2 again", "value": 5}]]

desired_data = [item['name'] for sublist in data 
                             for item in sublist 
                             if isinstance(item, dict)]

结果:

['Test_level_1', 'Test_level_1 again', 'Test_level_2', 'Test_level_2 again']

遍历您的列表,并进行良好的解包并保留"name"中的值

values = [["Test_1", {"name":"Test_level_1", "value":10}, {"name":"Test_level_1 again", "value":15}], 
          ["Test_2", {"name":"Test_level_2", "value":1}, {"name":"Test_level_2 again", "value":5}]]

result = []
for first, *others in values:
    for other in others:
        result.append(other["name"])
arr = [
  ["Test_1",
   {"name": "Test_level_1",
    "value": 10},
   {"name": "Test_level_1 again",
    "value": 15}],
  ["Test_2",
   {"name": "Test_level_2",
    "value": 1},
   {"name": "Test_level_2 again",
    "value": 5}]
]

ans = ans = [item["name"] for subarr in arr 
                          for index, item in enumerate(subarr) 
                          if index!=0];
print(ans)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM