使用排序的按字母数字值对列排序

2024-10-05 10:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含以下列的csv文件:

TEST1,A10001,TEST2,JPLPL
TEST2,A10001,TEST1,XPLPL
TEST3,810001,TEST2,JPLPL
TEST3,810001,TEST1,XPLPL
TEST1,V10001,TEST2,JPLPL
TEST2,X10001,TEST1,XPLPL
TEST1,A10002,TEST2,JPLPL
TEST2,A10002,TEST1,XPLPL
TEST3,810002,TEST2,JPLPL
TEST3,810002,TEST1,XPLPL
TEST1,Z10002,TEST2,JPLPL
TEST2,Z10002,TEST1,XPLPL

现在,按第二列的字母顺序对它进行排序可以得到:

TEST3   810001  TEST2   JPLPL
TEST3   810001  TEST1   XPLPL
TEST3   810002  TEST2   JPLPL
TEST3   810002  TEST1   XPLPL
TEST1   A10001  TEST2   JPLPL
TEST2   A10001  TEST1   XPLPL
TEST1   A10002  TEST2   JPLPL
TEST2   A10002  TEST1   XPLPL
TEST1   V10001  TEST2   JPLPL
TEST2   X10001  TEST1   XPLPL
TEST1   Z10002  TEST2   JPLPL
TEST2   Z10002  TEST1   XPLPL

但是,我想按以下方式分类:

TEST3   810001  TEST2   JPLPL
TEST3   810001  TEST1   XPLPL
TEST3   810002  TEST2   JPLPL
TEST3   810002  TEST1   XPLPL
TEST1   A10001  TEST2   JPLPL
TEST2   A10001  TEST1   XPLPL
TEST1   V10001  TEST2   JPLPL
TEST2   X10001  TEST1   XPLPL
TEST1   Z10002  TEST2   JPLPL
TEST1   A10002  TEST2   JPLPL
TEST2   A10002  TEST1   XPLPL
TEST2   Z10002  TEST1   XPLPL

其中字母数字键的顺序得到遵守。这在Python中是可能的吗?这是我目前的代码:

import csv
import operator

reader = csv.reader(open("file.csv"), delimiter=",")
sortedlist = sorted(reader, key=operator.itemgetter(1), reverse=True)

Tags: csvimport顺序字母readertest1test2test3

热门问题