鱼C论坛

 找回密码
 立即注册
查看: 1697|回复: 10

[已解决]请教时间列表的一个问题

[复制链接]
发表于 2017-8-8 11:15:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
[20160104090629,
20160104090630,
20160104090630,
20160104090631,
20160104090631,
20160104090632,
20160104090632,
...
20161104090632]
我想请教一下各位高手
如果我想截取2016-2017年每天的[0900:1100](9:00-11:00)时间段出来
请问该处理处理?
麻烦各位了
最佳答案
2017-8-8 12:41:25

第二个是切片的方法
  1. def get_time(lis):
  2.   new_lis = []
  3.   for each in lis:
  4.     stre = str(each)
  5.     if stre[3]=="6" or stre[3]=="7":
  6.       if 900 <= int(stre[8:12]) <=1100:
  7.         new_lis.append(each)
  8.   return new_lis
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-8 11:39:03 | 显示全部楼层
想到了2个方法,第一个是第一秒想到的,使用正则
  1. import re

  2. def get_time(lis):
  3.   newlis = []
  4.   pattern = '201[67]\d{4}09\d{4}|201[67]\d{4}10\d{4}|201[67]\d{4}1100\d{2}'
  5.   for each in lis:
  6.     if re.findall(pattern,str(each)):
  7.       newlis.append(int(each))
  8.   return newlis
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 11:42:03 | 显示全部楼层
gopythoner 发表于 2017-8-8 11:39
想到了2个方法,第一个是第一秒想到的,使用正则

大佬求第二个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 11:53:26 | 显示全部楼层
gopythoner 发表于 2017-8-8 11:39
想到了2个方法,第一个是第一秒想到的,使用正则

求第二个方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 12:32:41 | 显示全部楼层
我写一个不用正则的。
  1. data =[
  2.     20140104090629,
  3.     20160104090629,
  4.     20160104090630,
  5.     20160104090630,
  6.     20160104090631,
  7.     20160104090631,
  8.     20160104090632,
  9.     20160104090632,
  10.     20161104090632,
  11.     20170104040629,
  12.     20170104091029]

  13. data1 = [str(i) for i in data]
  14. data2 = [int(i) for i in data1 if (i[:4] == '2016' or i[:4] == '2017') and 900 <= int(i[8:12]) <=1100]
  15. print(data2)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 12:41:25 | 显示全部楼层    本楼为最佳答案   

第二个是切片的方法
  1. def get_time(lis):
  2.   new_lis = []
  3.   for each in lis:
  4.     stre = str(each)
  5.     if stre[3]=="6" or stre[3]=="7":
  6.       if 900 <= int(stre[8:12]) <=1100:
  7.         new_lis.append(each)
  8.   return new_lis
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 12:41:36 | 显示全部楼层

切片,看回复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 12:43:11 | 显示全部楼层
冬雪雪冬 发表于 2017-8-8 12:32
我写一个不用正则的。


吃个饭回来你就把我第二个方法给发了,好气啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 13:30:19 | 显示全部楼层
gopythoner 发表于 2017-8-8 12:41
第二个是切片的方法

学习学习!谢谢!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 13:31:00 | 显示全部楼层
冬雪雪冬 发表于 2017-8-8 12:32
我写一个不用正则的。

学习学习!谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 13:37:24 | 显示全部楼层
gopythoner 发表于 2017-8-8 12:43
吃个饭回来你就把我第二个方法给发了,好气啊

嗯,这个不用正则更方便些。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-1 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表