详解python二维数组排序操作

    作者:课课家教育更新于: 2016-01-07 15:49:31

    大神带你学编程,欢迎选课

      首先先说一下题目:有一个文件,文件目录及名称: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二维数组的两种不同的排序代码,课课家希望对大家有所帮助。

    标签: python

课课家教育

未登录