python列表與列表演算法詳解 2

2022-09-25 07:30:12 字數 2608 閱讀 5884

目錄

操作需求:

(1)用列表物件記錄三酷貓每天釣魚的種類和數量

(2)統計三酷貓所釣水產品的總數量和預計收穫金額

(3)列印財務報表一張。

#三酷貓列表記賬

nums = 0 #統計數量變數

amount = 0 #統計金額數量

i = 0 #迴圈控制變數

fish_record = ['1月1日','鯽魚',18,10.5,'1月1日','鯉魚',8,6.2,'1月1日','鰱魚',7,4.7,'1月2日','草魚',2,7.2,'1月2日','鯽魚',3,12,'1月2日','黑魚',6,15,'1月3日','烏龜',1,71,'1月3日','鯽魚',1,9.8]

print('釣魚日期名稱數量單價(元)')

print('-'*30)

while iwww.cppcns.coms = nums + fish_record[i+2] #累計數量

amount = amount + fish_record[i+2]*fish_record[i+3] #累計金額

print('%s,%s,%.2f,%.2f'%(fish_record[i],fish_record[i+1],fish_record[i+2],fish_record[i+3]))

i += 4 #迴圈控制

p程式設計客棧rint('-'*30)

print(' 總數:%d,總金額%.2f元'%(nums,amount))

結果:氣泡排序:通過不斷調整排序元素的次序,實現集合元素從小到大的排序過程。

** 氣泡排序過程**

(1)取左邊第乙個元素,然後與後面的元素進行比較,若發現後面的元素比第乙個元素小,則交換位置,繼續往後比較,一直比較調整到最後乙個元素,該元素為最大的元素。

(2)再取第乙個元素,根據第一步一次比較、調整,直到倒數第二個停止;其他元素都依次迴圈比較、調整,每次迴圈多減一次,n-m(n為集合長度,m為每迴圈一次,增加一次,m從0 開始)。

(3)所有元素比較、調整完畢,完成集合元素增序排序。

冒泡法排序示意圖

fish_records = [18,8,7,2,3,6,1,1]

i = 0 #迴圈控制變數

compare = 0 #比較元素初始值

fish_len = len(fish_records) #獲取列表長度

while ifish_records[j]: #比較前後兩個元素的大小

compare = fish_records[j-1] #前乙個大的放到臨時比較變數裡

fish_records[j-1] = fish_records[j] #把小的元素放到前面

fish_records[j] = compare #把臨時變數裡的大元素放到後面

j += 1 #內迴圈控制變數+1

i += 1 #外迴圈控制變數+1

print(fish_records)

結果:二分法查詢:指在有序集合裡,對集合下標範圍通過取中位法獲取對應的元素值,進行疊代查詢比較,直至找到所需要的元素。如set1[1…n],(1…n為集合元素下標順序值)先取乙個下標中位值k1= (1+n)/2,獲取set1[k1]值與查詢物件m進znbtv行比較。若set1[k1]等於m,則查詢成功,返回查詢位置;若set1[k1]小於m,則在[k+1,n]區間裡再取中位值,進行查詢比較;若set1[k1]大於m,則在[1,k-1]區間裡再取中位值,進行查詢比較。通過不斷縮小查詢區間範圍,可以快速獲取所需要查詢的值。

fish_records = [1,1,2,3,6,7,8,18]

low = 0 #查詢範圍下界

high = len(fish_records)-1 #查詢範圍上界www.cppcns.com

find_value = 7 #要尋找的值

find_ok = false #是否找到標誌,true為找到

i = 1

while low<=high:

middle = int((low+high)/2) #用int取整數,避免浮點數問題的發生

if find_value == fish_records[middle]: #找到時

find_ok = true #設定標誌為true

break

elif find_value>fish_records[middle]: #沒有找到,要找的值範圍大於中位值時

low = middle+1 #範圍在middle+1和high之間

elif find_value

結果:**運算示意圖:

本文標題: python列表與列表演算法詳解(2)

本文位址:

python 列表詳解

1.ctrl d複製一行 列表的特點 可以訪問多個值 需要了解的 2.sort 數字排第一位,字母,漢字 列表裡面需要是相同的資料型別 eg l1 你好 a c b d 1 3 2 l1.sort print l1 1 2 3 a b c d 你好 3.index獲取b元素的下標 l1 你好 a c...

Python列表詳解

在python中字串是一種序列,而從嚴格意義上來講,python序列型別有很多種 字串 列表 元組 字典,序列的核心意義在於可以進行多個資料的儲存。python中的序列就是一種動態 或靜態 的儲存。列表是對傳統陣列的一種使用包裝,與傳統陣列使用最大的不同在於,python中的列表是允許動態修改的,並...

Python列表詳解(二)

python 2.7 11 v2.7 11 6d1b6a68f775,dec 5 2015,20 40 30 msc v.1500 64bit amd64 on win32 type or license for more information.關於列表的操作 定義列表 world a b c q...