python 如何用时间元素创建元组的元组?
How Can python create tuple of tuple with time elements?
我想创建一个这样的元组:
(('0', '00:00:00'), ('1', '00:30:00'), ('2', '00:01:00') ..., ('46', '23:00:00'), ('47', '23:30:00'))
尝试次数:
lines = []
a = datetime.timedelta(minutes=0)
for ii in range (48):
lines.append(a)
a = a.timedelta(minutes=30)
我尝试了各种方法,但我真的不知道该怎么办?
尝试将列表与元组转换结合使用
l = []
for i in xrange(10):
l.append(('1', '00:30:00')) <--- set your data here
t =tuple(l) # convert it to tuple
这感觉像是可以用 datetime and timedelta 个对象来完成的事情。
对于元组创建元组,我使用了生成器表达式。
>>> from datetime import datetime, timedelta
>>> dt = datetime(1970 ,1 ,1)
>>> t = timedelta(minutes=30)
>>> tuple((str(i), (dt + (i * t)).strftime("%X")) for i in range(48))
(('0', '00:00:00'), ..., ('47', '23:30:00'))
>>>
您可以使用 generator 以 30 分钟为间隔构建时间列表。
def yield_times():
start = datetime.combine(date.today(), time(0, 0))
yield start.strftime("%H:%M:%S")
while True:
start += timedelta(minutes=30)
yield start.strftime("%H:%M:%S")
使用这个生成器,我们可以创建一个元组列表。 48
在这种情况下,是通过生成器的迭代次数。此 range
语句将从 0
开始,为我们提供值 0 - 47。
gen = yield_times()
tuple_list = []
for ii in range(48):
tuple_list.append((ii, gen.next()))
最后,我们需要将元组列表转换为元组的元组:
tuple_times = tuple(tuple_list)
完整脚本:
from datetime import date, time, datetime, timedelta
def yield_times():
start = datetime.combine(date.today(), time(0, 0))
yield start.strftime("%H:%M:%S")
while True:
start += timedelta(minutes=30)
yield start.strftime("%H:%M:%S")
gen = yield_times()
tuple_list = []
for ii in range(48):
tuple_list.append((ii, gen.next()))
tuple_times = tuple(tuple_list)
我想创建一个这样的元组:
(('0', '00:00:00'), ('1', '00:30:00'), ('2', '00:01:00') ..., ('46', '23:00:00'), ('47', '23:30:00'))
尝试次数:
lines = []
a = datetime.timedelta(minutes=0)
for ii in range (48):
lines.append(a)
a = a.timedelta(minutes=30)
我尝试了各种方法,但我真的不知道该怎么办?
尝试将列表与元组转换结合使用
l = []
for i in xrange(10):
l.append(('1', '00:30:00')) <--- set your data here
t =tuple(l) # convert it to tuple
这感觉像是可以用 datetime and timedelta 个对象来完成的事情。
对于元组创建元组,我使用了生成器表达式。
>>> from datetime import datetime, timedelta
>>> dt = datetime(1970 ,1 ,1)
>>> t = timedelta(minutes=30)
>>> tuple((str(i), (dt + (i * t)).strftime("%X")) for i in range(48))
(('0', '00:00:00'), ..., ('47', '23:30:00'))
>>>
您可以使用 generator 以 30 分钟为间隔构建时间列表。
def yield_times():
start = datetime.combine(date.today(), time(0, 0))
yield start.strftime("%H:%M:%S")
while True:
start += timedelta(minutes=30)
yield start.strftime("%H:%M:%S")
使用这个生成器,我们可以创建一个元组列表。 48
在这种情况下,是通过生成器的迭代次数。此 range
语句将从 0
开始,为我们提供值 0 - 47。
gen = yield_times()
tuple_list = []
for ii in range(48):
tuple_list.append((ii, gen.next()))
最后,我们需要将元组列表转换为元组的元组:
tuple_times = tuple(tuple_list)
完整脚本:
from datetime import date, time, datetime, timedelta
def yield_times():
start = datetime.combine(date.today(), time(0, 0))
yield start.strftime("%H:%M:%S")
while True:
start += timedelta(minutes=30)
yield start.strftime("%H:%M:%S")
gen = yield_times()
tuple_list = []
for ii in range(48):
tuple_list.append((ii, gen.next()))
tuple_times = tuple(tuple_list)