【问题标题】:Checking if a date exists in a list [duplicate]检查列表中是否存在日期[重复]
【发布时间】:2022-01-12 04:33:51
【问题描述】:

我有一个下面的列表,

   e= [datetime.date(2011, 3, 12),
     datetime.date(2014, 3, 12),
     datetime.date(2021, 12, 12)]

并且想要编写一个程序来检查给定日期是否在函数中通过,能够检查日期是否存在于此列表中。

这是我正在尝试的示例代码:

def defd(a,b,c):
  if datetime.date(a,b,c)==e:
    print('Date exists')
  else:
      print('Date doesnt exists')

defd(2014,3,12)

o/p 显示日期不存在,你能告诉我我哪里出错了吗?

【问题讨论】:

  • 你试过解析日期而不是仅仅传递一个字符串
  • 我已经编辑了我的问题,你现在可以看到了。
  • "if datetime.date(a,b,c)==e:" 嗯,是的,当然你在这里创建的datetime.date等于一个列表,就像你不等于你所在国家的人口普查一样。如果问题是实际上“我如何检查列表中是否存在某些内容?”,那么这与datetime 类无关,并且通过互联网搜索也很容易回答或遵循任何教程。
  • @KarlKnechtel,日期时间列表实际上来自我创建的类方法,因此列表 e 本身就是该类的对象,我已将其附加到列表中。因此,我将采用这种方法。
  • 列表来自哪里并不重要。如果您的问题是“我如何检查列表是否包含此日期时间?”,那么您可以使用与检查列表中是否有其他内容相同的方式 - 使用 in。否则,您需要解释实际问题是什么。在我看来,根据您的代码,您没有真正的问题 - 您只是有一个错字。

标签: python list function date datetime


【解决方案1】:

用日期时间对象替换字符串输入

def defd(a):
    k = [datetime.datetime(2011, 11, 12),
    datetime.datetime(2014, 11, 12),
    datetime.datetime(2021, 12, 12)]
    if a in k: #k is the above list
        print('Date exists')
    else:
        print('Date doesnt exist')

defd(datetime.datetime.strptime('2011-3-12',"%Y-%m-%d")) 

【讨论】:

  • 它告诉我,即使对于列表中提到的日期,日期也不存在。
猜你喜欢
  • 2018-06-19
  • 2019-05-28
  • 2018-04-03
  • 2011-02-25
  • 1970-01-01
  • 2020-09-14
  • 2012-05-22
  • 2019-03-19
  • 2012-06-15
相关资源
最近更新 更多