3 回答

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊
將密鑰從更改2006-1為2006-1-
>>> d = ['2006-12-30', '2006-12-31', '2006-1-1', '2006-11-30', '2006-10-1','2006-9-30']
>>> key = '2006-1-'
>>> [i for i in d if key in i]
['2006-1-1']
但是更好的方法是將字符串轉(zhuǎn)換為datetime對象,然后做出決定
>>> from datetime import datetime
>>> [i for i in d if datetime.strptime(i, '%Y-%m-%d').strftime('%Y-%m') == '2006-01']
['2006-1-1']

TA貢獻(xiàn)1744條經(jīng)驗 獲得超4個贊
也許有更好的方法,但是可以檢查2006年1月1日至2006年1月31日之間的所有日期
import datetime
d = ['2006-12-30', '2006-12-31', '2006-1-1', '2006-11-30', '2006-10-1','2006-9-30']
dates_list = [datetime.datetime.strptime(date, '%Y-%m-%d').date() for date in d]
low = datetime.datetime.strptime('2006-01-01', '%Y-%m-%d').date()
up = datetime.datetime.strptime('2006-01-31', '%Y-%m-%d').date()
within = [date for date in dates_list if low <= date <= up]
print(within)

TA貢獻(xiàn)1848條經(jīng)驗 獲得超6個贊
你的情況2006-1是在這兩個2006-1和2006-12。那就是為什么你沒有得到你預(yù)期的答案。
您可以嘗試以下方法:
d = ['2006-12-30', '2006-12-31', '2006-1-1', '2006-11-30', '2006-10-1','2006-9-30']
key = '2006-1'
output= [i for i in d if i.split("-")[0]==key.split("-")[0] and i.split("-")[1]==key.split("-")[1]]
print(output)
添加回答
舉報