[问题:]我在排序包含字母和数字的列时遇到问题。
[输入] 我的专栏看起来像这样: 参考
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
因此,请您分享一下这个提示。
小心
答案 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()))