You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python sorted()返回含array([...], dtype=int64)的怪异列表问题

问题原因与解决办法

原因

用sorted()处理numpy数组时,每个子元素会被保留为numpy的ndarray对象,输出时会显示该对象的完整标识(包括dtype信息);而原numpy数组直接输出时,numpy会自动优化整体的显示格式,不会展开每个子元素的类型细节,所以看起来更简洁。

解决办法

1. 转为Python原生列表后排序

先把numpy数组转换为普通Python列表,让sorted()处理原生列表元素,输出就会回到简洁的格式:

import numpy as np

# 生成随机整数对
arr = np.random.randint(1, 201, size=(50, 2))
# 转换为原生列表
arr_list = arr.tolist()
# 按第一个元素排序
sorted_list = sorted(arr_list, key=lambda x: x[0])
# 输出结果
for pair in sorted_list:
    print(pair)

2. 使用numpy自带的排序方法(推荐)

numpy提供了更高效的数组排序方式,直接对原数组操作,既保持输出格式一致,性能也更优:

import numpy as np

arr = np.random.randint(1, 201, size=(50, 2))
# 按第一列排序:先获取第一列排序后的索引,再用索引取行
sorted_arr = arr[arr[:, 0].argsort()]
# 输出结果
print(sorted_arr)

3. 自定义输出格式(如果坚持用sorted())

如果一定要用sorted()处理numpy数组,可以在输出时把每个ndarray子元素转为列表或元组:

import numpy as np

arr = np.random.randint(1, 201, size=(50, 2))
sorted_arr = sorted(arr, key=lambda x: x[0])
# 输出时转换每个元素格式
for pair in sorted_arr:
    print(list(pair))  # 或 print(tuple(pair))

内容的提问来源于stack exchange,提问作者Alex Graalum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:27:09