Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python3查找日期列表中的所有日期_Python_String_Python 3.x_List_Python Datetime - Fatal编程技术网

如何使用Python3查找日期列表中的所有日期

如何使用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

我有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-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)}

列表转换和排序是可能的,与以前完全一样。

如果它们是日期时间对象而不是字符串,那么在不进行字符串切片的情况下也应该可以使用。集合只包含唯一的元素。它使用散列,字符串是可散列的。集合理解是通过迭代来创建集合的一种方法。这是伟大的和超级有帮助的知道。