如何在python中对包含字母和数字的csv列进行排序?

时间:2015-07-12 09:16:33

标签: python sorting csv

[问题:]我在排序包含字母和数字的列时遇到问题。

[输入] 我的专栏看起来像这样: 参考

Test1
Test2
Test11

[代码]

import csv
import operator
sample = open (r'test.csv','r')
csv1 = csv.reader(sample, delimiter = ',')
sort = sorted (csv1,key=operator.itemgetter(154))

[当前输出]

Test1
Test11
Test2

[期望的输出]

Test1
Test2
Test11

因此,请您分享一下这个提示。

小心

1 个答案:

答案 0 :(得分:0)

您可以使用re查找数字并转换为int:

import re

sort = sorted(csv1,key=lambda x: int(re.search("\d+",x[154]).group()))

如果你有一些没有数字的字符串:

导入重新

sort = sorted(csv1,key=lambda x: x[154] if x.isalpha() else int(re.search("\d+",x[154]).group()))