Python二维数组排序:按第6列升序排序
Python二维数组排序:按第6列升序排序
本文介绍如何使用Python代码对一个二维数组进行排序,以第6列的值作为排序依据,并保持第一行标题。
示例数据:
data = [['序号', '用户', '微信用户名', '手机号码', '累计流量', '今天流量', '本时段流量'],
['1', 'AA', 'aaa', '1806', '20661', 3000, 0],
['2', 'BB', 'bbb', '29306', '19949', 4143, 0],
['3', 'CC', 'ccc', '348287', '9205', 535, 0],
['4', 'DD', 'ddd', '41350', '4801', 47, 0],
['5', 'EE', 'eee', '594787', '31743', 0, 0],
['6', 'FF', 'fff', '6648', '10022', 76, 0]]
代码实现:
data = [['序号', '用户', '微信用户名', '手机号码', '累计流量', '今天流量', '本时段流量'],
['1', 'AA', 'aaa', '1806', '20661', 3000, 0],
['2', 'BB', 'bbb', '29306', '19949', 4143, 0],
['3', 'CC', 'ccc', '348287', '9205', 535, 0],
['4', 'DD', 'ddd', '41350', '4801', 47, 0],
['5', 'EE', 'eee', '594787', '31743', 0, 0],
['6', 'FF', 'fff', '6648', '10022', 76, 0]]
# 使用切片获取除第一行外的所有行
rows = data[1:]
# 按照第6列的值进行排序
sorted_rows = sorted(rows, key=lambda x: x[5])
# 合并第一行与排序后的列表
sorted_data = [data[0]] + sorted_rows
# 打印排序后的结果
for row in sorted_data:
print(row)
排序后的结果:
['序号', '用户', '微信用户名', '手机号码', '累计流量', '今天流量', '本时段流量']
['5', 'EE', 'eee', '594787', '31743', 0, 0]
['4', 'DD', 'ddd', '41350', '4801', 47, 0]
['6', 'FF', 'fff', '6648', '10022', 76, 0]
['3', 'CC', 'ccc', '348287', '9205', 535, 0]
['2', 'BB', 'bbb', '29306', '19949', 4143, 0]
['1', 'AA', 'aaa', '1806', '20661', 3000, 0]
代码解析:
- 使用切片获取除第一行外的所有行:
rows = data[1:] - 按照第6列的值进行排序:
sorted_rows = sorted(rows, key=lambda x: x[5])- 使用
sorted()函数对rows列表进行排序。 key=lambda x: x[5]指定以第6列的值作为排序依据。
- 使用
- 合并第一行与排序后的列表:
sorted_data = [data[0]] + sorted_rows - 打印排序后的结果:
for row in sorted_data: print(row)
总结:
该代码示例展示了如何使用Python的内置函数 sorted() 和切片功能对二维数组进行排序。通过指定 key 参数,我们可以根据任意列的值对数组进行排序,并通过切片和列表合并操作来保留第一行标题。
原文地址: http://www.cveoy.top/t/topic/d82C 著作权归作者所有。请勿转载和采集!