下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

详解python二维数组排序操作

作者:课课家教育     来源: http://www.kokojia.com点击数:2524发布时间: 2016-01-07 15:49:31

标签: python

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

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

赞(35)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程