Skip to main content
 首页 » 编程设计

python之有什么方法可以在不使用 operator.itemgetter 的情况下对嵌套列表进行排序吗

2025年05月04日16fff_TT

我有一个正在阅读的文件,然后创建了我想要的嵌套列表,然后按 4 元素(邮政编码)排序

jk43:23 Marfield Lane:Plainview:NY:10023 
axe99:315 W. 115th Street, Apt. 11B:New York:NY:10027 
jab44:23 Rivington Street, Apt. 3R:New York:NY:10002 
ap172:19 Boxer Rd.:New York:NY:10005 
jb23:115 Karas Dr.:Jersey City:NJ:07127 
jb29:119 Xylon Dr.:Jersey City:NJ:07127 
ak9:234 Main Street:Philadelphia:PA:08990 

这是我的代码:

ex3_3 = open('ex1.txt') 
exw = open('ex2_sorted.txt', 'w') 
 
data = [] 
for line in ex3_3: 
    items = line.rstrip().split(':') 
    data.append(items) 
print sorted(data, key=operator.itemgetter(4)) 

输出:

[['jb23', '115 Karas Dr.', 'Jersey City', 'NJ', '07127'], ['jb29', '119 Xylon Dr.', 'Jersey City', 'NJ', '07127'], ['ak9', '234 Main Street', 'Philadelphia', 'PA', '08990'], ['jab44', '23 Rivington Street, Apt. 3R', 'New York', 'NY', '10002'], ['ap172', '19 Boxer Rd.', 'New York', 'NY', '10005'], ['jk43', '23 Marfield Lane', 'Plainview', 'NY', '10023'], ['axe99', '315 W. 115th Street, Apt. 11B', 'New York', 'NY', '10027']] 

一切正常,我只是想知道是否有一种方法可以不使用“导入运算符”来做到这一点?

请您参考如下方法:

哦,是的,有一个方法:

print sorted(data,key=lambda x: x[4])