如何使用Python3查找日期列表中的所有日期
我有UTC日期列表,如下所示:如何使用Python3查找日期列表中的所有日期,python,string,python-3.x,list,python-datetime,Python,String,Python 3.x,List,Python Datetime,我有UTC日期列表,如下所示: ['2018-07-29T15:58:22.111904Z', '2018-07-29T15:59:22.033263Z', '2018-07-29T16:01:22.103157Z', '2018-07-30T11:41:22.032661Z', '2018-07-30T11:42:22.042215Z', '2018-07-31T12:31:21.062671Z'] 这不是完整的列表。我需要的是抓取整个列表中的所有日期 因此,对于这个列表: ['2018-0
['2018-07-29T15:58:22.111904Z', '2018-07-29T15:59:22.033263Z', '2018-07-29T16:01:22.103157Z', '2018-07-30T11:41:22.032661Z', '2018-07-30T11:42:22.042215Z', '2018-07-31T12:31:21.062671Z']
这不是完整的列表。我需要的是抓取整个列表中的所有日期
因此,对于这个列表:
['2018-07-29', '2018-07-30', '2018-07-31']
将被退回
如何使用Python3实现这一点?您可以将集合理解与字符串切片结合使用:
L = ['2018-07-29T15:58:22.111904Z', '2018-07-29T15:59:22.033263Z',
'2018-07-29T16:01:22.103157Z', '2018-07-30T11:41:22.032661Z',
'2018-07-30T11:42:22.042215Z', '2018-07-31T12:31:21.062671Z']
res = {i[:10] for i in L}
结果:
print(res)
{'2018-07-30', '2018-07-31', '2018-07-29'}
如果您需要列表,而不关心顺序,请使用list(res)
如果需要排序列表,请使用sorted(res)
如果希望使用强烈建议使用的
datetime
对象,则应转换为datetime
并使用date
方法。第三方dateutil
模块有一种方法:
from dateutil import parser
res = {parser.parse(i).date() for i in L}
print(res)
{datetime.date(2018, 7, 29),
datetime.date(2018, 7, 30),
datetime.date(2018, 7, 31)}
列表转换和排序是可能的,与以前完全一样。如果它们是日期时间对象而不是字符串,那么在不进行字符串切片的情况下也应该可以使用。集合只包含唯一的元素。它使用散列,字符串是可散列的。集合理解是通过迭代来创建集合的一种方法。这是伟大的和超级有帮助的知道。