Python 向嵌套元组的末尾添加值
我有一个嵌套的元组,格式如下:Python 向嵌套元组的末尾添加值,python,python-3.x,python-2.7,datetime,Python,Python 3.x,Python 2.7,Datetime,我有一个嵌套的元组,格式如下: nested_tup = [('15MAR18 103000', '15MAR18 103758'), ('15MAR18 120518', '15MAR18 121308')] etc... 每个元组中的第一个元素是开始日期,每个元组中的第二个元素是结束日期 我想找出两个日期之间的时间差,然后将答案作为第三个元素附加到每个元组中。。。到目前为止,我有以下几点: for start, end in nested_tup: after = datetim
nested_tup = [('15MAR18 103000', '15MAR18 103758'), ('15MAR18 120518', '15MAR18 121308')] etc...
每个元组中的第一个元素是开始日期,每个元组中的第二个元素是结束日期
我想找出两个日期之间的时间差,然后将答案作为第三个元素附加到每个元组中。。。到目前为止,我有以下几点:
for start, end in nested_tup:
after = datetime.strptime(end, '%d%b%y %H%M%S')
before = datetime.strptime(start, '%d%b%y %H%M%S')
duration = after - before
我需要将这个持续时间值附加为每个元组中的第三个元素。。但我不知道怎么办
感谢您的帮助。这里有一种方法:
for i, (start, end) in enumerate(nested_tup):
after = datetime.strptime(end, '%d%b%y %H%M%S')
before = datetime.strptime(start, '%d%b%y %H%M%S')
duration = after - before
nested_tup[i] += (duration, )
这可能更容易理解为:
f = '%d%b%y %H%M%S'
for i, (start, end) in enumerate(nested_tup):
nested_tup[i] += (datetime.strptime(end, f) - datetime.strptime(start, f), )
即使您不能变异元组
对象来附加新组件,您也可以使用+
连接元组
对象,这将从组成的元组
对象创建一个新的元组
,这对您手头的问题非常有好处。这里有一种方法:
for i, (start, end) in enumerate(nested_tup):
after = datetime.strptime(end, '%d%b%y %H%M%S')
before = datetime.strptime(start, '%d%b%y %H%M%S')
duration = after - before
nested_tup[i] += (duration, )
这可能更容易理解为:
f = '%d%b%y %H%M%S'
for i, (start, end) in enumerate(nested_tup):
nested_tup[i] += (datetime.strptime(end, f) - datetime.strptime(start, f), )
即使您不能变异
元组
对象来附加新组件,您也可以使用+
连接元组
对象,这将从组成的元组
对象创建一个新的元组
,这对您手头的问题非常好。元组是不变的数据结构。所以不能将值附加到元组。
这可能对你有用
strptime = lambda dt: datetime.strptime(dt, f)
[(start, end, strptime(end) - strptime(start)) for start, end in nested_tup]
元组是不可变的数据结构。所以不能将值附加到元组。 这可能对你有用
strptime = lambda dt: datetime.strptime(dt, f)
[(start, end, strptime(end) - strptime(start)) for start, end in nested_tup]
可以将map与转换函数结合使用
def convert(tup):
after = datetime.strptime(tup[1], '%d%b%y %H%M%S')
before = datetime.strptime(tup[0], '%d%b%y %H%M%S')
duration = after - before
return (tup[0], tup[1], duration)
ans = list(map(convert, nested_tup))
可以将map与转换函数结合使用
def convert(tup):
after = datetime.strptime(tup[1], '%d%b%y %H%M%S')
before = datetime.strptime(tup[0], '%d%b%y %H%M%S')
duration = after - before
return (tup[0], tup[1], duration)
ans = list(map(convert, nested_tup))
你的“嵌套元组”是一个包含元组的列表,因为你不能向元组添加值,我建议你用列表替换元组,然后向这些列表添加第三个值。你的“嵌套元组”是一个包含元组的列表,因为你不能向元组添加值,我建议您用列表替换元组,并将第三个值添加到这些列表中。