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 目標識...