我想创建一个日期列表,从今天开始,然后返回任意天数,例如,在我的例子中100天.有没有比这更好的方法呢?
import datetime
a = datetime.datetime.today()
numdays = 100
dateList = []
for x in range (0, numdays):
dateList.append(a - datetime.timedelta(days = x))
print dateList
Run Code Online (Sandbox Code Playgroud) 我有以下代码失败,出现以下错误:
RuntimeError:超出最大递归深度
我试图重写它以允许尾递归优化(TCO).我相信如果发生TCO,这段代码应该是成功的.
def trisum(n, csum):
if n == 0:
return csum
else:
return trisum(n - 1, csum + n)
print(trisum(1000, 0))
Run Code Online (Sandbox Code Playgroud)
我是否应该断定Python不执行任何类型的TCO,或者我只是需要以不同的方式定义它?
例如:
from datetime import date
d1 = date(2008,8,15)
d2 = date(2008,9,15)
Run Code Online (Sandbox Code Playgroud)
我正在寻找简单的代码来打印中间的所有日期:
2008,8,15
2008,8,16
2008,8,17
...
2008,9,14
2008,9,15
Run Code Online (Sandbox Code Playgroud)
谢谢
我有两个字符串变量,其中包含yyyy-mm-dd格式的日期,如下所示:
date1 = '2011-05-03'
date2 = '2011-05-10'
Run Code Online (Sandbox Code Playgroud)
我想编写生成date1到date2范围内所有日期的代码.如何在Python中完成?
在下面的代码中,bdate和edate都是datetime.datetime()对象:
pylab.barh(ypos, edate - bdate, left=bdate, height=TRMWidth )
Run Code Online (Sandbox Code Playgroud)
但这会在dates.py._to_ordinalf()中抛出AttributeError方式:
文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/pyplot.py",第1926行,在barh ret = ax.barh(底部,宽度,高度,左边) ,**kwargs)文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes.py",第4774行,以barh方向='水平',**kwargs)文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes.py",第4624行,条形宽度= self.convert_xunits(width)文件"/ Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/artist.py",第147行,在convert_xunits中返回ax.xaxis.convert_units(x)文件"/ Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axis.py",第1312行,在convert_units中ret = self.converter.convert(x,self.units,self)文件"/ Library /Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/dates.py",第1125行,在转换中返回date2num(value)在date2num文件中输入文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/dates.py",第260行:return np.asarray([_ to_ordinalf(val)for val in d])文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/dates.py",第189行,在_to_ordinalf base = float(dt.toordinal( ))
AttributeError:'datetime.timedelta'对象没有属性'toordinal'
我认为如果我能在xaxis上推出日期时间并让它解决细节问题会很棒; 没那么多.有关如何使日期与xaxis相关的任何建议?
情况:我正在尝试构造一个接受两个不同整数的简单方法,这两个整数代表两个不同的日期.以2012年5月25日的20120525和2012年6月26日的20120627为例.我希望此方法返回这些整数类型的列表,这些整数类型表示两个日期参数之间的所有日期.
问题:我是否可以获得有关如何执行此操作以及如何处理每个月28,29,30或31天的任何建议.我想我可以通过分割/修改10的幂来提取数字作为整数,然后根据上面的特定条件递增这些数字,但我觉得必须有一个更简单的方法来做到这一点.
假设我有一个使用transactions以下整数列调用的 DataFrame:year, month, day, timestamp, transaction_id。
In [1]: transactions = ctx.createDataFrame([(2017, 12, 1, 10000, 1), (2017, 12, 2, 10001, 2), (2017, 12, 3, 10003, 3), (2017, 12, 4, 10004, 4), (2017, 12, 5, 10005, 5), (2017, 12, 6, 10006, 6)],('year', 'month', 'day', 'timestamp', 'transaction_id'))
In [2]: transactions.show()
+----+-----+---+---------+--------------+
|year|month|day|timestamp|transaction_id|
+----+-----+---+---------+--------------+
|2017| 12| 1| 10000| 1|
|2017| 12| 2| 10001| 2|
|2017| 12| 3| 10003| 3|
|2017| 12| 4| 10004| 4|
|2017| 12| …Run Code Online (Sandbox Code Playgroud) 我有两个datetime.date对象.我想迭代它们之间的所有月份.(能够在任意单位时间内迭代会更好.)我不确定最好的方法是什么.
理想情况下,我正在寻找类似的东西:
for month in (end - start).months:
# month is a date object
# ...
Run Code Online (Sandbox Code Playgroud)
例如,如果end和start分别是4月和2月的任何日期,结果将是2月,3月,4月.
python ×9
datetime ×5
date ×3
apache-spark ×1
bar-chart ×1
github ×1
matplotlib ×1
pyspark ×1
recursion ×1
stack ×1