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))

你的“嵌套元组”是一个包含元组的列表,因为你不能向元组添加值,我建议你用列表替换元组,然后向这些列表添加第三个值。你的“嵌套元组”是一个包含元组的列表,因为你不能向元组添加值,我建议您用列表替换元组,并将第三个值添加到这些列表中。