首先先说一下题目:有一个文件,文件目录及名称:d:\\\\test1.txt
文件内容:
0001 Jone 1000.00
0002 Stone 30000.00
0008 Smith 50000.00
0005 Super 60000.00
0010 Abust 10000.00
现在需要完成的功能是:输入1:进行工号排序,输入2:进行姓名排序,输入3:进行薪资排序
先贴代码:
方法1:
# coding=utf-8 ##以utf-8编码储存中文字符
file=open("d:\\\\test1.txt","r")
file=[l.split() for l in file.read().split('\\n')]
def sort(A,num):
for i in range(len(A)):
(A[i][0],A[i][num])=(A[i][num],A[i][0])
A.sort()
for i in range(len(A)):
(A[i][0],A[i][num])=(A[i][num],A[i][0])
def pri(file):
for i in file:
print ( i )
try:
print "输入1:工号排序,输入2:姓名排序,输入3:薪资排序:"
num=int(raw_input("请输入一个数字(1-3):\\n"))
if num==1:
file.sort()
pri(file)
elif num==2:
sort(file,1)
pri(file)
elif num==3:
sort(file,2)
pri(file)
break
else:
print "请输入一个1-3的数字:"
except ValueError:
print "请输入一个数字!!"
方法2:
代码如下:
# coding=utf-8
f=open("d:\\\\test1.txt","r")
chunks=[l.split() for l in f.read().split('\\n')]
chunks.sort(lambda a,b:cmp(a[2],b[2]))
def pri(file):
for i in chunks:
print i
try:
print "输入1:工号排序,输入2:姓名排序,输入3:薪资排序:"
num=int(raw_input("请输入一个数字(1-3):\\n"))
if num==1:
chunks.sort(lambda a,b:cmp(a[0],b[0]))
pri(chunks)
elif num==2:
chunks.sort(lambda a,b:cmp(a[1],b[1]))
pri(chunks)
elif num==3:
chunks.sort(lambda a,b:cmp(a[2],b[2]))
pri(chunks)
else:
print "请输入一个1-3的数字:"
except ValueError:
print "请输入一个数字!!"
以上例子就是Python二维数组的两种不同的排序代码,课课家希望对大家有所帮助。