V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

Python 中 xrange 生成的最后个项怎么判断。

  •  
  •   csdreamdong · 125 天前 · 760 次点击
    这是一个创建于 125 天前的主题,其中的信息可能已经有所发展或是发生改变。
    start_time = '2017-01-01 00:00:00'
    end_time = '2017-07-01 00:00:00'
    start_time_st = int(time.mktime(time.strptime(start_time, '%Y-%m-%d %H:%M:%S')))
    end_time_st = int(time.mktime(time.strptime(end_time, '%Y-%m-%d %H:%M:%S')))
    
    for stmp in xrange(start_time_st, end_time_st, 60):
        ......
        需要生成一个 list,
        if len(list)>=100 or stmp 是最后一个时:
            do.....
    

    这个场景下,怎么判断 stmp 已经是最后一个了。求助大神们。

    11 回复  |  直到 2017-07-18 08:46:20 +08:00
        1
    csdreamdong   125 天前
    python2.7
        2
    sleshep   125 天前
    用 arrow 库啊,你这么折腾时间不难受啊
        3
    sleshep   125 天前
    import arrow
    arrow.get(2017).span('month')[:7]


    2 行搞定的事情
        4
    csdreamdong   125 天前
    @sleshep 我想指定一段时间,每隔 60 秒一个时间戳。要这段时间内的所有时间戳。
        5
    sleshep   125 天前
    >>> from datetime import datetime
    >>> import arrow
    >>> start = datetime(2013, 5, 5, 12, 30)
    >>> end = datetime(2013, 5, 5, 17, 15)
    >>> for r in arrow.Arrow.range('hour', start, end):
    ... print repr(r)
    ...
    <Arrow [2013-05-05T12:30:00+00:00]>
    <Arrow [2013-05-05T13:30:00+00:00]>
    <Arrow [2013-05-05T14:30:00+00:00]>
    <Arrow [2013-05-05T15:30:00+00:00]>
    <Arrow [2013-05-05T16:30:00+00:00]>
        6
    csdreamdong   125 天前
    @sleshep 但怎么判断是不是最后个呢?
        7
    rogerchen   125 天前
    for i, stmp in enumerate(xrange(...))
        8
    KingMaster   125 天前
    if stmp + 60 >= end_time_st:
    ...
        9
    bestkayle   125 天前
    @rogerchen 这还不如直接用 range。。。
        10
    crab   125 天前
    用 unix 时间,再转回去。
        11
    zjuhwc   124 天前 via iPhone
    把是不是最后一个的判断挪到循环外面去?
    因为 for 循环结束后,stmp 就停在最后一个值上了,循环外做一次 do 操作
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1790 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 63ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1