python中的复合排序

1 python sorting

我有一个输出大量数据的python脚本,示例如下.4个字段中的第一个字母总是由两个字母组成,一个数字,一个斜线和一个或两个数字

Gi3/2 --.--.--.-- 0024.e89b.c10e Dell Inc.  
Gi5/4 --.--.--.-- 0030.c1cd.f038 HEWLETTPACKARD   
Gi4/3 --.--.--.-- 0020.ac00.6703 INTERFLEX DATENSYSTEME GMBH  
Gi3/7 --.--.--.-- 0009.4392.34f2 Cisco Systems  
Gi6/6 --.--.--.-- 001c.2333.bd5a Dell Inc  
Gi3/16 --.--.--.-- 0009.7c92.7af2 Cisco Systems  
Gi5/12 --.--.--.-- 0020.ac00.3fb0 INTERFLEX DATENSYSTEME GMBH  
Gi4/5 --.--.--.-- 0009.4392.6db2 Cisco Systems  
Gi4/6 --.--.--.-- 000b.cd39.c7c8 Hewlett Packard  
Gi6/4 --.--.--.-- 0021.70d7.8d33 Dell Inc  
Gi6/14 --.--.--.-- 0009.7c91.fa71 Cisco Systems  
Run Code Online (Sandbox Code Playgroud)

在第一个字段上对此进行正确排序的最佳方法是什么,以便读取此示例

Gi3/2   --.--.--.-- 0024.e89b.c10e  Dell Inc.  
Gi3/7   --.--.--.-- 0009.4392.34f2  Cisco Systems  
Gi3/16  --.--.--.-- 0009.7c92.7af2  Cisco Systems  
Gi4/3   --.--.--.-- 0020.ac00.6703  INTERFLEX DATENSYSTEME GMBH  
Gi4/5   --.--.--.-- 0009.4392.6db2  Cisco Systems  
Gi4/6   --.--.--.-- 000b.cd39.c7c8  Hewlett Packard  
Gi5/4   --.--.--.-- 0030.c1cd.f038  HEWLETT PACKARD  
Gi5/12  --.--.--.-- 0020.ac00.3fb0  INTERFLEX DATENSYSTEME GMBH  
Gi6/14  --.--.--.-- 0009.7c91.fa71  Cisco Systems  
Gi6/4   --.--.--.-- 0021.70d7.8d33  Dell Inc  
Gi6/6   --.--.--.-- 001c.2333.bd5a  Dell Inc  
Run Code Online (Sandbox Code Playgroud)

我的努力非常混乱,导致数字如12在5之前出现!

一如既往,非常感谢您的耐心等待.

yai*_*chu 5

def lineKey (line):
    keyStr, rest = line.split(' ', 1)
    a, b = keyStr.split('/', 1)
    return (a, int(b))

sorted(lines, key=lineKey)
Run Code Online (Sandbox Code Playgroud)