Python中如何访问嵌套列表字典元素并提取指定值?
提取嵌套结构中的start/end值
你手里的是嵌套列表加字典的结构,每个子列表里包含若干带start和end键的字典。下面是几种提取对应值的方法:
首先把数据赋值给变量:
data = [[{'start': 88608, 'end': 94176}], [{'start': 56352, 'end': 63456}, {'start': 119328, 'end': 151008}], [{'start': 88608, 'end': 114144}, {'start': 123936, 'end': 131040}, {'start': 136224, 'end': 160000}], [{'start': 79392, 'end': 144864}], [{'start': 110112, 'end': 147936}]]
提取所有start值到列表
方法一:嵌套列表推导式(最简洁)
直接遍历两层结构,提取每个字典的start值:
start_values = [item['start'] for sublist in data for item in sublist] print(start_values) # 输出:[88608, 56352, 119328, 88608, 123936, 136224, 79392, 110112]
要提取end值的话,把'start'换成'end'即可:
end_values = [item['end'] for sublist in data for item in sublist] print(end_values) # 输出:[94176, 63456, 151008, 114144, 131040, 160000, 144864, 147936]
方法二:普通循环遍历(更直观)
如果觉得列表推导式不好理解,用两层for循环实现同样逻辑:
start_values = [] for sublist in data: for item in sublist: start_values.append(item['start']) print(start_values)
提取特定的start值(比如你举例的88608、56352、119328)
可以根据子列表的位置和元素位置精准提取:
target_starts = [] # 取第一个子列表的第一个元素start target_starts.append(data[0][0]['start']) # 取第二个子列表所有元素的start target_starts.extend([item['start'] for item in data[1]]) print(target_starts) # 输出:[88608, 56352, 119328]
内容的提问来源于stack exchange,提问作者dmoses
相关产品推荐
相关产品推荐

