python 日期排序的实例代码


Posted in Python onJuly 11, 2019

问题1:如果日期中有千年以前的情况(没法用格式化函数),如('2010-11-23','1989-3-7','2010-1-5','978-12-1','2010-2-4')参照方法1

问题2:如果日期中没有千年以前的情况,做法就很多了。参照方法2和方法3

# -*- coding: utf-8 -*-
import time
from operator import itemgetter
arr=('2010-11-23','1989-3-7','2010-1-5','978-12-1','2010-2-4')
def date_sort1(x):
  ls=list(x)
  #用了冒泡排序来排序,其他方法效果一样
  for j in range(len(ls)-1):
    for i in range(len(ls)-j-1):
      lower=ls[i].split('-')
      upper=ls[i+1].split('-')    
      for s in range(3):
        if int(lower[s])>int(upper[s]):        
          ls[i],ls[i+1]=ls[i+1],ls[i]
          break
        elif int(lower[s])<int(upper[s]):
          break
  ar=tuple(ls)
  return ar 
ar=('2010-11-23','1989-3-7','2010-2-4','2010-1-5')
def date_sort2(x):
  ls=list(x)
  dic={}
  for l in ls:
    #返回用秒数来表示时间的浮点数
    dic[l]=time.mktime(time.strptime(l, '%Y-%m-%d'))
  dic=sorted(dic.iteritems(), key=itemgetter(1))
  sorted_items=[keys[0] for keys in dic]
  '''
  items=dic.items() 
  backitems=[[v[1],v[0]] for v in items] 
  backitems.sort() 
  sorted_items=[keys[1] for keys in backitems] 
  '''
  '''
  items=dic.items() 
  backitems=[[v[0],v[1]] for v in items] 
  backitems=sorted(backitems, key=lambda x : x[1])  
  sorted_items=[keys[0] for keys in backitems] 
  '''
  return tuple(sorted_items)
import datetime
def date_sort3(x):
  ls=list(x)
  #用了冒泡排序来排序,其他方法效果一样
  for j in range(len(ls)-1):
    for i in range(len(ls)-j-1):
      lower=datetime.datetime.strptime(ls[i], '%Y-%m-%d')
      upper=datetime.datetime.strptime(ls[i+1], '%Y-%m-%d')
      if lower>upper:
        ls[i],ls[i+1]=ls[i+1],ls[i]
  return tuple(ls)
print date_sort1(arr)     
print date_sort2(ar)
print date_sort3(ar)

运行结果:

('978-12-1', '1989-3-7', '2010-1-5', '2010-2-4', '2010-11-23')
('1989-3-7', '2010-1-5', '2010-2-4', '2010-11-23')
('1989-3-7', '2010-1-5', '2010-2-4', '2010-11-23')

正则表达式同样可以处理这类问题,下面是正则表达式的解决方案。

#利用正则表达式
import re
data = ['2010-11-23','1989-3-7','2010-1-5','978-12-1','2010-2-4']
patt = '(\d+)-(\d+)-(\d+)'
  #交换排序
for i in range(len(data)-1):
  for x in range(i+1, len(data)):
    j = 1
    while j<4:
      lower = re.match(patt, data[i]).group(j)
      upper = re.match(patt, data[x]).group(j)
      #print lower,upper
      if int(lower) < int(upper):
        j = 4
      elif int(lower) == int(upper):
        j += 1
      else:
        data[i],data[x] = data[x],data[i]
        j = 4
print data

总结

以上所述是小编给大家介绍的python 日期排序的实例代码 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
Python中暂存上传图片的方法
Feb 18 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
使用Python爬取最好大学网大学排名
Feb 24 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
Windows下python3.7安装教程
Jul 31 Python
Python字节单位转换实例
Dec 05 Python
python中有关时间日期格式转换问题
Dec 25 Python
python之语音识别speech模块
Sep 09 Python
Python办公自动化之Excel(中)
May 24 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 #Python
python的一些加密方法及python 加密模块
Jul 11 #Python
kali中python版本的切换方法
Jul 11 #Python
python按比例随机切分数据的实现
Jul 11 #Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 #Python
Python循环结构的应用场景详解
Jul 11 #Python
python列表,字典,元组简单用法示例
Jul 11 #Python
You might like
多人战的战术与战略
2020/03/04 星际争霸
在php中取得image按钮传递的name值
2006/10/09 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
php上传文件常见问题总结
2015/02/03 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
python基础教程之缩进介绍
2014/08/29 Python
python中List的sort方法指南
2014/09/01 Python
python Django批量导入数据
2016/03/25 Python
python学习教程之使用py2exe打包
2017/09/24 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
一套.net面试题及答案
2016/11/02 面试题
市场营销专业毕业生求职信
2014/03/26 职场文书
600字作文之感受大自然
2019/11/27 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript