Python将所有datetime对象(日期)拉出
如何从列表中提取所有日期 我总是可以循环测试。但我如何才能做得更好呢 我可以使用正则表达式,就像我在这里做的一样。但我知道还有更有效的方法 我在这里查看了一下,但似乎Python将所有datetime对象(日期)拉出,python,regex,datetime,Python,Regex,Datetime,如何从列表中提取所有日期 我总是可以循环测试。但我如何才能做得更好呢 我可以使用正则表达式,就像我在这里做的一样。但我知道还有更有效的方法 我在这里查看了一下,但似乎datetime对象不是内置类型。所以我想我不能走那条路。请提出其他建议 注意:我不知道日期是否为每4个值。我需要一些没有图案的东西 看看你的代码,你的列表如下: import datetime a=[datetime.datetime(2014, 4, 13, 0, 0), u'a', u'b', u'c',datetime.d
datetime
对象不是内置类型。所以我想我不能走那条路。请提出其他建议
注意:我不知道日期是否为每4个值。我需要一些没有图案的东西 看看你的代码,你的列表如下:
import datetime
a=[datetime.datetime(2014, 4, 13, 0, 0), u'a', u'b', u'c',datetime.datetime(2014, 4, 14, 0, 0), u'a', u'b', u'c', datetime.datetime(2014, 4, 15, 0, 0), u'a', u'b', u'c']
为此,您可以:
a = [date, x, x, x, date, x, x, x, date, x, ...]
然后将每个datetime对象格式化为您想要的任何模式。查看您的代码,您的列表如下所示:
import datetime
a=[datetime.datetime(2014, 4, 13, 0, 0), u'a', u'b', u'c',datetime.datetime(2014, 4, 14, 0, 0), u'a', u'b', u'c', datetime.datetime(2014, 4, 15, 0, 0), u'a', u'b', u'c']
为此,您可以:
a = [date, x, x, x, date, x, x, x, date, x, ...]
然后将每个datetime对象格式化为您想要的任何模式。我们知道您想要的类型是
datetime.datetime
,因此编写列表理解似乎是最干净的方式(无需担心模式):
我怀疑您是否可以使用正则表达式(除非您将所有内容都转换为字符串),除非您选择将每个datetime
转换为string
或unicode
表示,此时,您仍在检查类型
b = [i for i in a if type(i) == datetime.datetime]
>>打印[为a中的i键入(i)]
[, , , , , , ]
我们知道您想要的类型是datetime.datetime
,因此编写列表理解似乎是最干净的方法(不必担心模式):
我怀疑您是否可以使用正则表达式(除非您将所有内容都转换为字符串),除非您选择将每个datetime
转换为string
或unicode
表示,此时,您仍在检查类型
b = [i for i in a if type(i) == datetime.datetime]
>>打印[为a中的i键入(i)]
[, , , , , , ]
你说的“把所有日期都拉出来”是什么意思?不管怎样,你使用的任何正则表达式或其他匹配过程都必然会以某种方式在列表中循环。你不妨自己做。看看Makoto的答案。你说的“把所有的日期都拉出来”是什么意思?你使用的任何正则表达式或其他匹配过程都会以某种方式在列表中循环。你不妨自己做。见Makoto的答案。谢谢Makoto。你能指出我在哪里可以读到更多关于将for
和if
语句放在同一行的内容吗?这叫什么?正如我上面提到的,它们被称为“列表理解”。这被称为列表理解,是解决这类问题的一种很好的方法。谢谢Makoto。你能指出我在哪里可以读到更多关于将for
和if
语句放在同一行的内容吗?这叫什么?正如我上面提到的,它们被称为“列表理解”。这被称为列表理解,是解决这类问题的一种很好的方法。