如何去除np.array列表输出时的array前缀,得到普通嵌套列表
问题原因
输出带array标识的核心原因是你追加到listofEdges里的value_edges是NumPy的ndarray类型对象,不是Python原生列表,直接打印存储了ndarray的列表时,就会显示NumPy数组的专属格式标记,和你期望的原生嵌套列表输出不一致。
解决方法
- 追加元素时直接转换(推荐)
修改原append逻辑,在追加前就把NumPy数组转为原生Python列表,从根源上避免类型问题:
NumPy数组自带的listofEdges.append(value_edges.tolist())tolist()方法会递归把所有层级的数组结构转为原生list,转换完成后列表输出就是你期望的[[4, 0],[5, 0]]格式。 - 已完成追加后批量转换
如果你已经把所有边数据都追加到列表里了,可以用列表推导式一次性批量转换所有元素:listofEdges = [edge.tolist() for edge in listofEdges] - 仅输出环节临时转换
如果不需要修改列表本身的存储结构,只是打印时不想看到array字样,可以在输出环节做临时转换,不改动原列表数据:print([edge.tolist() for edge in listofEdges])
避坑提示
不要直接用
list(value_edges)做类型转换:对于一维数组这个写法虽然能得到普通列表,但遇到多维数组时,list()只会转换最外层结构,内层元素依然是ndarray类型,输出还是会带array标识,tolist()做的是全层级递归转换,稳定性更高。
内容的提问来源于stack exchange,提问作者Anas
相关产品推荐
相关产品推荐

