如何用Python编写函数去除字典值中的嵌套方括号
如何将字典中嵌套列表展开为一维列表?
需求说明
原字典结构:
{"bbox": [[1386, 111], [1475, 111], [1475, 159], [1386, 159]]}
需要转换为:
{"bbox": [1386, 111, 1475, 111, 1475, 159, 1386, 159]}
你之前尝试的代码d = {k:v[0] for k,v in d.items()}仅提取了每个键对应值的第一个子列表,无法满足展开所有嵌套元素的需求。
实现方法
方法1:列表推导式
通过两层列表推导遍历所有子列表及内部元素,拼接成一维列表:
def flatten_bbox(d): return {k: [num for sublist in v for num in sublist] for k, v in d.items()}
方法2:使用itertools.chain
借助itertools.chain.from_iterable高效展开嵌套可迭代对象,适合处理大规模数据:
from itertools import chain def flatten_bbox(d): return {k: list(chain.from_iterable(v)) for k, v in d.items()}
测试示例
original_dict = {"bbox": [[1386, 111], [1475, 111], [1475, 159], [1386, 159]]} result = flatten_bbox(original_dict) print(result) # 输出: {'bbox': [1386, 111, 1475, 111, 1475, 159, 1386, 159]}
内容的提问来源于stack exchange,提问作者Ronak Patel
相关产品推荐
相关产品推荐

