该列表包含日期时间元素以及其他元素。
if (params.dirname == ((params.path =~ ~/${params.dirname}/).with { matches() ? it[0] : null })) {
print success
}
我尝试使用没有运气
java.lang.NoSuchMethodError: No such DSL method 'matches' found among steps
答案 0 :(得分:0)
然后在条件表达式中测试对象类型:
[d.date() if isinstance(d, datetime.datetime) else d for d in i]
这会生成一个包含所有值的列表,其中datetime
个对象替换为日期:
>>> [d.date() if isinstance(d, datetime.datetime) else d for d in i]
[1127, 1, 2, datetime.date(1900, 1, 1), 'America/NewYork', None, None, datetime.date(1970, 1, 1), datetime.date(9999, 12, 31), 62, 3, ' ', 2, datetime.date(2017, 12, 6)]
如果您想只日期,请使用过滤器:
[d.date() for d in i if isinstance(d, datetime.datetime)]
现在我们正在过滤,所以只剩下日期:
>>> [d.date() for d in i if isinstance(d, datetime.datetime)]
[datetime.date(1900, 1, 1), datetime.date(1970, 1, 1), datetime.date(9999, 12, 31), datetime.date(2017, 12, 6)]
答案 1 :(得分:0)
您可以通过在列表推导中添加if语句来排除非日期时间,以检查该值是否为datetime实例:
dates = [d.date() if isinstance(d, datetime.datetime) else d for d in i ]
这将保留所有数据,仅更改日期时间。如果您想过滤掉非日期时间:
dates = [d.date() for d in i if isinstance(d, datetime.datetime)]
在我了解到你可以为理解添加条件之前,我花了一两年的时间玩Python。它非常有用!见这里:
https://www.digitalocean.com/community/tutorials/understanding-list-comprehensions-in-python-3
这篇文章是关于Python 3的,但在大多数情况下,它在Python 2.7中完全相同。