python 有序的列表中模糊匹配給定的數值

2021-10-13 15:33:32 字數 1060 閱讀 2677

from bisect import bisect_left

deftakeclosest

(mylist, mynumber)

:if mynumber >=

max(mylist)

:return

max(mylist)

elif mynumber <=

min(mylist)

:return

min(mylist)

if mylist[0]

< mylist[1]

: pos = bisect_left(mylist, mynumber)

# 找到 mylist 裡面第乙個不比 mynumber 小(即 >= )的數的索引下標

# 返回的插入點 pos 可以將陣列mylist分成兩部分。左側是 all(val < x for val in mylist[lo:i]) ,右側是 all(val >= x for val in mylist[i:hi])

before = mylist[pos -1]

after = mylist[pos]

if after - mynumber < mynumber - before:

return after

else

:return before

else

: mylist = mylist[::

-1] pos = takeclosest(mylist, mynumber)

return pos

測試一下

list=[

35.11225

,35.2365556

,35.3656545

,35.4556685

]answer = takeclosest(cityarea_list,

35.40

)print

(answer)

輸出:35.3656545

參考中南自動化學院「智慧型控制與優化決策「至渝但是這個列表必須正序

python大列表 Python中的列表

python社群的理想就是建立一款乾淨,簡單,完美的語言.學習了兩三天,真的感覺python的一切設計,都是為了解決曾經讓程式設計師感覺痛苦的問題.看到python的列表,再想想曾經的學習過的陣列.我的天,這不是我一直苦苦尋找的東西嗎?由於列表和以前學習過的陣列有很大的差異性,在此做了一些筆記,留作...

Python實現list列表的有序子集查詢

找出list的全部子集很簡單,但是如果我們要求子集保持順序,就加了很多的限制。比如 1,2,3,4 有效的有序真子集應該是 1 1,2 1,2,3 1,2,3,4 實現如下 def find subset l list 用於儲存子集 查詢有序子集 for i in range len l 遍歷原li...

Python中的列表

1 idle缺省內置函式都是紫色,字串是綠色,關鍵字 如if 是橙色,生成的所有結果為藍色 2 python的變數識別符號沒有型別!但是識別符號指示的資料物件有型別。3 python列表可以包含各種型別的資料,也就是說在同乙個列表中,可以同時有字串和數字 4 for迴圈 可以實現迭代 for 目標識...