Python小白学习笔记四(容器类型 6 总结与综合练习 )

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)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值