Python List 排序

import bisect

# insort等價於insort_right。
# 插入x,保持排序。如果x已經在List中存在,則在x的右側插入。
# 如果List是降序,結果不正確,插入的x的位置可能是List的最左側(x < 中點值)或最右側(x >= 中點值)。
# bisect_right和bisect_left不會實際插入,返回將要插入的位置。

# CASE 1
print("CASE 1 ====================")
data = [13, 3, 9, 5, 11, 1]
# 降序排序data
data.sort(reverse=False)
print(data)

index = bisect.bisect_right(data, 5.0)
print(index)
bisect.insort(data, 5.0)
print(data)
index = bisect.bisect_right(data, 4.9)
print(index)
bisect.insort(data, 4.9)
print(data)
index = bisect.bisect_left(data, 3.0)
print(index)
bisect.insort_left(data, 3.0)
print(data)

# CASE 2
print("CASE 2 ====================")
data = [13, 3, 9, 5, 11, 1]

# 降序排序data
data.sort(reverse=True)
print(data)

index = bisect.bisect_right(data, 5.0)
print(index)
bisect.insort(data, 5.0)
print(data)
index = bisect.bisect_right(data, 4.9)
print(index)
bisect.insort(data, 4.9)
print(data)
index = bisect.bisect_right(data, 3.0)
print(index)
bisect.insort_left(data, 3.0)
print(data)

運行結果:

CASE 1 ====================
[1, 3, 5, 9, 11, 13]
3
[1, 3, 5, 5.0, 9, 11, 13]
2
[1, 3, 4.9, 5, 5.0, 9, 11, 13]
1
[1, 3.0, 3, 4.9, 5, 5.0, 9, 11, 13]
CASE 2 ====================
[13, 11, 9, 5, 3, 1]
6
[13, 11, 9, 5, 3, 1, 5.0]
0
[4.9, 13, 11, 9, 5, 3, 1, 5.0]
0
[3.0, 4.9, 13, 11, 9, 5, 3, 1, 5.0]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章