av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

javascript - python小算法

瀏覽:114日期:2022-06-28 13:17:04

問題描述

有個日期字符串list,如下:

lst = [’2017-06-01’, ’2017-06-08’, ’2017-06-15’, ’2017-06-22’, ’2017-06-29’, ...]

求s = [’2017-06-09’]與lst中哪個日期字符串最相近

思路1:將s和lst的值轉換為日期,遍歷比較相差的秒數,最小的就是要找的日期字符串。

有沒有更好的實現方法??

問題解答

回答1:

我給個思路給你參考下lst.append(s)lst.sort()num=lst.index(s)然后比較lst[num-1]和lst[num+1]這兩個相差的秒數,小的一個就是結果,這樣就不用遍歷算時間戳了。覺得不錯就給贊加采納吧。

回答2:

將日期通過去掉-轉換為整數, 再分別與s中日期相減,得到絕對值最小的數為最相近的日期.

# Python codelst = [’2017-06-01’, ’2017-06-08’, ’2017-06-15’, ’2017-06-22’, ’2017-06-29’]s = [’2017-06-09’]date = [’’.join(x.split(’-’)) for x in lst]datetoint = [int(x) for x in date]gaps = [abs(x - int(’’.join(s[0].split(’-’)))) for x in datetoint]mostrecentdate = lst[gaps.index(min(gaps))]print(mostrecentdate)回答3:

感覺lz的意思是不要遍歷lst,不管是sort還是通減其實都發生了遍歷應該用二分法吧,大概是這意思

i = 0j = len(list)while True: index = (i + j) / 2 if s > lst[index]:i = index else:j = index continue

就當偽碼看了,反正是這意思,這樣遍歷次數最少。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 午夜精品一区二区三区三上悠亚 | 国产成人99久久亚洲综合精品 | 久久精品中文字幕 | 亚洲欧美一区二区三区国产精品 | 中文字幕在线网 | 国产精品二区三区在线观看 | 日本久久精 | www.亚洲成人网 | 国产99久久 | 婷婷福利视频导航 | 亚洲性在线| 欧美性久久 | 午夜精品在线 | 久久视频一区 | 久久久久久国产免费视网址 | 一区二区精品 | 久久tv在线观看 | 国产激情视频在线 | av在线一区二区三区 | 一区二区三区四区不卡 | 精品91| 欧美在线一区二区三区四区 | 欧美自拍一区 | 国产精品日产欧美久久久久 | 99re视频在线免费观看 | 欧美激情综合五月色丁香小说 | 亚洲精品免费看 | 日韩午夜影院 | 亚洲一区二区视频 | 久草在线| 夏同学福利网 | 欧美a v在线 | 日韩精品一区二区三区中文字幕 | 涩色视频在线观看 | 久久国内精品 | 国产精品18久久久久久久 | 99久久婷婷国产综合精品电影 | 欧美日韩精品一区二区三区蜜桃 | 欧美国产精品一区二区三区 | 久草资源网站 | 欧美日韩精品免费观看 |