Board logo

标题: [原创代码] python求txt文件中所有Z后面数字的最小值和最大值 [打印本页]

作者: 依山居    时间: 2015-11-7 19:08     标题: python求txt文件中所有Z后面数字的最小值和最大值

  1. #求txt文件中所有Z后面数字的最小值和最大值
  2. #依山居 19:04 2015/11/7
  3. #题目来源: http://www.bathome.net/thread-38027-1-1.html
  4. zl=[]
  5. with open("a.txt") as f:
  6.         for l in f:
  7.                 txtline=l.rsplit()
  8.                 for ll in txtline:
  9.                         #print(ll)
  10.                         if ll[0]=="Z":
  11.                                 x=float(ll[1:])
  12.                                 zl.append(x)
  13.                                 
  14. #方法一:使用python内建的max min函数
  15. print("大: ",max(zl))
  16. print("小: ",min(zl))
  17. #方法二: 使用sorted排序后取首位和末尾元素。
  18. zl=sorted(zl)
  19. print("小: ",zl[0])
  20. print("大: ",zl[-1])
  21. #总结是不管是max 还是sort 比较的对象都应该统一是数字。
  22. #所以处理前需要先丢掉字母Z并转成浮点数。
  23. """
  24. 输出:
  25. 大:  30.0
  26. 小:  -50.013
  27. 小:  -50.013
  28. 大:  30.0
  29. """
复制代码

作者: 依山居    时间: 2015-11-8 03:49

  1. #python正则求txt文件中所有Z后面数字的最小值和最大值
  2. #依山居 2:23 2015/11/8
  3. #题目来源: http://www.bathome.net/thread-38027-1-1.html
  4. #这个版本改用正则表达式处理文本.
  5. import re
  6. def ftxt(txt="a.txt"):
  7.         #global zl
  8.         zl=[]
  9.         reg=re.compile("Z(-?\d*\.?\d*)")
  10.         with open(txt) as f:
  11.                 for line in f:
  12.                         regresult=re.findall(reg,line)
  13.                         if regresult:
  14.                                 for r in regresult:                                       
  15.                                        zl.append(float(r))
  16.         print(len(zl))
  17.         return zl
  18.         
  19. zl=ftxt()
  20. print(zl)
  21. #方法一:使用python内建的max min函数
  22. print("大: ",max(zl))
  23. print("小: ",min(zl))
  24. #方法二: 使用sorted排序后取首位和末尾元素。
  25. #还可以用zl.sort(reverse=True) zl.reverse() 排序
  26. zl=sorted(zl)
  27. print("小: ",zl[0])
  28. print("大: ",zl[-1])
  29. #总结是不管是max 还是sort 比较的对象都应该统一是数字。
  30. #所以处理前需要先丢掉字母Z并转成浮点数。
  31. """
  32. 输出:
  33. 11
  34. [19.429, -14.477, -14.77, -15.012, -15.312, -16.012,
  35. -50.013, 30.0, -14.977, -15.012, -15.012]
  36. 大:  30.0
  37. 小:  -50.013
  38. 小:  -50.013
  39. 大:  30.0
  40. """
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2