有没有办法在不使用operator.itemgetter的情况下对嵌套列表进行排序?

jed*_*jed 1 python sorting nested-lists

我有一个文件,我正在读,然后创建嵌套列表,我想然后排序4元素(zipcode)

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
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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))
Run Code Online (Sandbox Code Playgroud)

输出:

[['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']]
Run Code Online (Sandbox Code Playgroud)

这一切都运行正常,我只是想知道是否有办法在不使用"导入运算符"的情况下执行此操作?

eud*_*xos 6

哦,是的,有一种方法:

print sorted(data,key=lambda x: x[4])
Run Code Online (Sandbox Code Playgroud)