Python小白學習筆記四(容器型別 6 總結與綜合練習 )
字串:儲存字元編碼,不可變序列
列表:儲存變數,可變序列
元組:儲存變數,不可變序列
字典:儲存鍵值對,可變雜湊
集合:儲存鍵,可變雜湊
可變:預留空間,自動擴容 --> 動態改變
不可變:按需分配 --> 節省記憶體
序列: 有順序(索引/切片)
練習1:排序演算法:
1 # 自定義排序演算法
2 list = [51,24,5,15,22,4,9,18,74]
3 # 取數據: 前幾個數據(不包括最後不一個)
4 for a in range(len(list)-1):
5 # 作比較:用取出的數據與後面的數據進行比較
6 for b in range(a+1,len(list)):
7 if list[a] < list[b]:
8 list[a],list[b] = list[b],list[a]
9 print(list)
練習2:容器的綜合練習:
1 # 商品字典
2 dict_commodity_infos = {
3 1001: {"name": "屠龍刀", "price": 10000},
4 1002: {"name": "倚天劍", "price": 10000},
5 1003: {"name": "金箍棒", "price": 52100},
6 1004: {"name": "口罩", "price": 20},
7 1005: {"name": "酒精", "price": 30},
8 }
9 # 訂單列表
10 list_orders = [
11 {"cid": 1001, "count": 1},
12 {"cid": 1002, "count": 3},
13 {"cid": 1005, "count": 2},
14 ]
15 # 1.列印所有商品資訊,
16 # 格式:商品編號xx,商品名稱xx,商品單價xx.
17 # 2. 列印所有訂單中的資訊,
18 # 格式:商品編號xx,購買數量xx.
19 # 3. 列印所有訂單中的商品資訊,
20 # 格式:商品名稱xx,商品單價:xx,數量xx.
21 # 4. 查詢數量最多的訂單(使用自定義演算法,不使用內建函數)
22 # 5. 根據購買數量對訂單列表降序(大->小)排列
23 #1
24 for cid,info in dict_commodity_infos.items():
25 print("商品單號%d,商品名稱%s,商品價格%d" % (cid,info['name'],info['price']) )
26 #2
27 for order in list_orders:
28 print("商品單號%d,購買數量%d" % (order['cid'],order['count']))
29
30 #3
31 for order in list_orders:
32 cid = order['cid']
33 commodity = dict_commodity_infos[cid]
34 print("商品名稱%s,商品價格%d,數量%d" % (commodity['name'],commodity['price'],order['count']))
35
36 # 4. 查詢數量最多的訂單(使用自定義演算法,不使用內建函數)
37 max_value = list_orders[0]
38 for i in range(1, len(list_orders)):
39 if max_value["count"] < list_orders[i]["count"]:
40 max_value = list_orders[i]
41 print(max_value)
42
43 # 5. 根據購買數量對訂單列表降序(大->小)排列
44 for r in range(len(list_orders) - 1):
45 for c in range(r + 1, len(list_orders)):
46 if list_orders[r]["count"] < list_orders[c]["count"]:
47 list_orders[r], list_orders[c] = list_orders[c], list_orders[r]
48 print(list_orders)