Python中如何将列表转换为指定格式的元组列表?
生成面积图所需的重复元组列表
你可以通过以下Python代码快速将现有列表转换为目标格式的元组列表:
简洁实现(一行列表推导式)
outputs = [25, 50, 60, 45] data = [tuple([val if i == idx else 0 for i in range(len(outputs))]) for idx, val in enumerate(outputs) for _ in range(2)]
分步实现(更易理解)
如果觉得一行代码可读性差,可以拆分成两步:
- 先生成每个仅对应位置有值的元组
outputs = [25, 50, 60, 45] tuples_list = [] for idx, val in enumerate(outputs): # 创建全0列表,替换当前索引位置的数值 temp = [0] * len(outputs) temp[idx] = val tuples_list.append(tuple(temp))
- 将每个元组重复两次组成最终列表
data = [] for t in tuples_list: data.extend([t, t])
验证结果
运行后data的内容为:
[(25, 0, 0, 0), (25, 0, 0, 0), (0, 50, 0, 0), (0, 50, 0, 0), (0, 0, 60, 0), (0, 0, 60, 0), (0, 0, 0, 45), (0, 0, 0, 45)]
完全符合你需要的面积图数据格式,每个X轴类别对应的两个Y轴上角点元组已按要求重复。
内容的提问来源于stack exchange,提问作者Ricardo Gomes
相关产品推荐
相关产品推荐

