目錄
操作需求:
(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...