python列表、字典、循环、判断举例分析
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,本篇内容主要讲解"python列表、字典、循环、判断举例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python列表、字典、循环、判断举例分析"吧!
千家信息网最后更新 2025年01月28日python列表、字典、循环、判断举例分析
本篇内容主要讲解"python列表、字典、循环、判断举例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python列表、字典、循环、判断举例分析"吧!
练习案例
下面通过一个简化的虚拟案例做一次深入学习python小练习,有某果园销售数据如下:
sell_list = [ {'客户': '张三', '种类': '苹果','数量':100}, {'客户': '李四', '种类': '苹果','数量':200}, {'客户': '李四', '种类': '香梨','数量':200}, {'客户': '李四', '种类': '香梨','数量':300}, {'客户': '张三', '种类': '苹果','数量':100}, {'客户': '王五', '种类': '香蕉','数量':500}, {'客户': '王五', '种类': '香蕉','数量':150}, {'客户': '王五', '种类': '香蕉','数量':150}, {'客户': '王五', '种类': '苹果','数量':500}, {'客户': '赵六', '种类': '葡萄','数量':300}, {'客户': '李四', '种类': '葡萄','数量':300}, {'客户': '赵六', '种类': '苹果','数量':300},]
客户希望对数据进行整理,期待得到的数据集格式类似如下这样:
result_list = [ ['张三', {'苹果': 300, '香蕉': 200, }], ['李四', {'苹果': 100, '香蕉': 200, }], ['王五', {'苹果': 100, '香蕉': 200, }],]
需求分析
客户原始数据池是列表,列表元素是客户、果名、数量。现在的需求是对列表元素进行汇总,得出客户、果名、数量的汇总表。
首先遍历原始数据池,判断客户名:
若在数据集中客户名不存在,则数据集中添加客户名,同时将果名和数量以字典格式加入数据集。
若在数据集中客户名存在,则判断果名:
若在数据集中果名存在,则将数量累加。
若在数据集中果名不存在,则添加果名和数量。
通过以上分析有个大致的框架,通过2层嵌套循环加判断来编写代码。
具体代码
我设想的代码有2种方案:
二层循环嵌套if的列表实现方式,优点是较省内存,缺点是速度略慢:
result_list = []for i in sell_list: for j in result_list: if j[0] == i['客户']: if i['种类'] not in j[1]: j[1][i['种类']] = i['数量'] else: j[1][i['种类']] = j[1][i['种类']] + i['数量'] break else: result_list.append([i['客户'], {i['种类']: i['数量'], }])for i in result_list: print(i)out:['张三', {'苹果': 200}]['李四', {'苹果': 200, '香梨': 500, '葡萄': 300}]['王五', {'香蕉': 800, '苹果': 500}]['赵六', {'葡萄': 300, '苹果': 300}]
上述代码有一个需要特别注意的地方,循环体内break会跳过整个循环体(含循环体的else部分)。这一点很多教材都没有讲得很透彻。
单层循环嵌套if的字段实现方式,优点是速度较快,缺点是较费内存:
result_dict = {}for i in sell_list: if i['客户'] in result_dict: if i['种类'] not in result_dict[i['客户']]: result_dict[i['客户']][i['种类']] = i['数量'] else: result_dict[i['客户']][i['种类']] += i['数量'] else: result_dict[i['客户']] = {i['种类']: i['数量']}for i, j in result_dict.items(): print(i, j)out:张三 {'苹果': 200}李四 {'苹果': 200, '香梨': 500, '葡萄': 300}王五 {'香蕉': 800, '苹果': 500}赵六 {'葡萄': 300, '苹果': 300}
在字典实现方式中看起来是比列表实现方式少了一层循环,实质上这个循环的目的在"if i['种类'] not in result_dict[i['客户']]:"这个部分已经实现了,在容器中找成员,字典是速度最快同时也是最费内存的方式。
到此,相信大家对"python列表、字典、循环、判断举例分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
客户
数量
种类
苹果
循环
数据
香蕉
李四
王五
字典
葡萄
分析
方式
张三
代码
香梨
内存
循环体
速度
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库多表逗号链接
网络安全模型可以构造
工业互联网促进科技发展
网络安全知识测试及答案
arcgis建立土地确权数据库
江西国家网络安全技术
加强校园网络安全管理
思科网络技术pdf
南京计算机软件开发工程师
气象局网络安全检查
苏州net软件开发哪里好
湖南银联网络技术服务代理商
金融管理软件开发商
网络安全诈骗真实案例
泄密网络安全教育主要内容
中国俄联合软件开发
公安局网络安全技术岗是什么
2850服务器
怎么进行数据库安全设计
湖北ipfs服务器配置云空间
人的基因与数据库的关系
叶豪广州网络安全
125个网络安全工具
做大型电脑服务器
中新创ntp服务器管理地址
数据库查看表格
简历计算机网络技术职业类别
湖南银联网络技术服务代理商
seer 数据库
水表管理服务器安装费用