簡體   English   中英

轉換元組列表中元組的一項

[英]Convert one item of a tuple in a list of tuples

我有這個元組列表:

b = [(1337345, 'xxx', '2016-05-18 18:44:26.0'),
     (1337346, 'yyy', '2016-05-18 18:44:35.0')]

使用datetime.strptime(my_date, '%Y-%m-%d %H:%M:%S.%f')將每個元組中的日期轉換為datetime對象的最佳效果是什么?

我不能直接修改元組,所以我認為這必須通過構建一個新列表來完成? 最有效的方法是什么?

我可能會使用列表理解並使用格式化日期構建一個新元組:

[(tup[0], tup[1], datetime.strptime(tup[2], '%Y-%m-%d %H:%M:%S.%f') for tup in b]

你可以使用列表理解,解壓每個元組,只對第三個元素做一些事情:

>>> from datetime import datetime
>>> b = [(1337345, 'xxx', '2016-05-18 18:44:26.0'),
...      (1337346, 'yyy', '2016-05-18 18:44:35.0')]
>>> [(first, second, datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f')) for first, second, date in b]
[(1337345, 'xxx', datetime.datetime(2016, 5, 18, 18, 44, 26)), (1337346, 'yyy', datetime.datetime(2016, 5, 18, 18, 44, 35))]

如果您使用的是Python3.5,您也可以這樣做:

>>> [(*head, datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f')) for *head, date in b]
[(1337345, 'xxx', datetime.datetime(2016, 5, 18, 18, 44, 26)), (1337346, 'yyy', datetime.datetime(2016, 5, 18, 18, 44, 35))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM