如何将(x,y)坐标元组拆分为x、y独立元组以优化plt.plot传参
Python 惯用写法实现
最优简洁写法
首先将零散的坐标点归集为一个列表,再通过zip解包自动分离x、y坐标序列:
# 所有点统一放入列表,后续增删点仅需修改此处 points = [point_A, point_B, point_C, point_D, point_E, point_F] # 直接解包传入plt.plot plt.plot(*zip(*points))
写法原理
zip(*points)会迭代所有点元组,分别聚合所有点的x坐标、y坐标,返回两个元组,刚好匹配plt.plot要求的(x序列, y序列)入参格式- 外层的
*会将zip返回的两个元组解包为plt.plot的两个位置参数,无需手动拼接序列
更高可读性的显式写法
如果不想用嵌套解包降低代码可读性,也可以显式拆分坐标序列:
points = [point_A, point_B, point_C, point_D, point_E, point_F] x_coords, y_coords = zip(*points) plt.plot(x_coords, y_coords)
优势
无论后续需要新增、删除坐标点,仅需要修改points列表内容即可,无需调整plt.plot的传参逻辑,完全消除重复代码,符合Python惯用规范。
内容的提问来源于stack exchange,提问作者Ben G
相关产品推荐
相关产品推荐

