2

これは常に false を出力します。日付が配列に含まれているかどうかを確認し、適切なものを出力するにはどうすればよいですか?

dates = [ "2012-09-03",
"2012-10-08",
"2012-10-09",
"2012-11-12",
# .. more values snipped for brevity
"2013-04-19",
"2013-05-27", ]

if date.today() in dates:
    print "true"
elif date.today() not in dates:
    print "false"
4

2 に答える 2

10

文字列を pythondatetime.dateオブジェクトと比較しています。.strftime()メソッドを使用して、比較のために日付オブジェクトを文字列に変換する必要があります。

today = date.today().strftime('%Y-%m-%d')
print today in dates # Will print "True" or "False"

これをさらに説明するには:

>>> from datetime import date
>>> date.today()
datetime.date(2012, 8, 28)
>>> date.today() == '2012-08-28'
False
>>> date.today().strftime('%Y-%m-%d') == '2012-08-28'
True

または、まったく同じ出力形式を使用する.isoformat()メソッドを使用することもできます。

>>> date.today().isoformat()
'2012-08-28'
于 2012-08-28T01:01:14.973 に答える
-1

index() 関数と try/except 関数をいつでも使用して、次のように日付がリストに含まれているかどうかをテストできます。

list = [1,2,3,4,5,6,7,8,9]
try:
  location = list.index(5)
  print("5 was found in the list.")  # if program manages to get
                                     # here you know 5 is in
                                     # the list.
except:
  print("5 was no found in the list.") # if it doesn't find 5 this
                                       # line is displayed
于 2012-08-28T01:31:11.833 に答える