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]

代码解析:

  1. 使用切片获取除第一行外的所有行: rows = data[1:]
  2. 按照第6列的值进行排序: sorted_rows = sorted(rows, key=lambda x: x[5])
    • 使用 sorted() 函数对 rows 列表进行排序。
    • key=lambda x: x[5] 指定以第6列的值作为排序依据。
  3. 合并第一行与排序后的列表: sorted_data = [data[0]] + sorted_rows
  4. 打印排序后的结果: for row in sorted_data: print(row)

总结:

该代码示例展示了如何使用Python的内置函数 sorted() 和切片功能对二维数组进行排序。通过指定 key 参数,我们可以根据任意列的值对数组进行排序,并通过切片和列表合并操作来保留第一行标题。

Python二维数组排序:按第6列升序排序

原文地址: http://www.cveoy.top/t/topic/d82C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录