关键词:
案例01:生成0-10之间5个不相等的数方法01:使用list集合实现
import random
list01 = []
for i in range(100):
num01 = random.randint(0, 10)
if num01 not in list01:
list01.append(num01)
if len(list01)==5:
break
print(list01)
方法01:使用set集合实现,自动消除重复
import random
number_set = set()
while len(number_set) < 5:
number_set.add(random.randint(0,10))
print(number_set)
执行结果:
C:\python\python.exe C:/python/demo/file3.py
0, 1, 6, 9, 10
Process finished with exit code 0
案例02:有10个学生,姓名自行添加。有三门考试:语文、数学和英语,随机为这10名学生生成分数【50-100】,要求每一门科目中所有学生分数不能重复
需求:
1)统计出每门科目的前三名和后三名【包含姓名和具体分数】
2)统计出总分的前三名和后三名
3)在(50-100)的数字中,那些数字没有在三门的分数中出现过
方法01:
import random
student_name = ["王一", "胡二", "张三", "李四", "赵五", "马六", "杨七", "刘八", "孙九", "陈十"]
student_result = [] # 存储所有学生的成绩明细
chinese_result = set() # 存储语文分数
maths_result = set() # 存储数学分数
english_result = set() # 存储外语分数
# 开始生成一个语文分数
for i in range(len(student_name)):
while True:
temp = random.randint(50, 100)
if temp not in chinese_result:
chinese_result.add(temp)
break
else:
continue
# 开始生成一个数学分数
while True:
temp = random.randint(50, 100)
if temp not in maths_result:
maths_result.add(temp)
break
else:
continue
# 开始生成一个英语分数
while True:
temp = random.randint(50, 100)
if temp not in english_result:
english_result.add(temp)
break
else:
continue
print(chinese_result)
print(maths_result)
print(english_result)
方法02:
对于相同的操作可以抽象成一个函数,在通过get调用这个函数即可
import random
def get_result(result:set):
while True:
temp = random.randint(50, 100)
if temp not in result:
result.add(temp)
break
else:
continue
return result
student_name = ["王一", "胡二", "张三", "李四", "赵五", "马六", "杨七", "刘八", "孙九", "陈十"]
student_result = [] # 存储所有学生的成绩明细
chinese_result = set() # 存储语文分数
maths_result = set() # 存储数学分数
english_result = set() # 存储外语分数
# 开始生成分数
for i in range(len(student_name)):
# 开始生成一个语文分数
chinese_result = get_result(chinese_result)
# 开始生成一个数学分数
maths_result = get_result(maths_result)
# 开始生成一个英语分数
english_result = get_result(english_result)
print(student_name)
print(chinese_result)
print(maths_result)
print(english_result)
# 把三个set集合转为list
chinese_result = list(chinese_result)
maths_result = list(maths_result)
english_result = list(english_result)
# 生成成绩明细
for i in range(len(student_name)):
temp_list = []
temp_list.append(chinese_result[i])
temp_list.append(maths_result[i])
temp_list.append(english_result[i])
student_result.append(temp_list)
print(chinese_result)
print(maths_result)
print(english_result)
print(student_result)
# 需求1:统计出每门科目的前三名和后三名【包含姓名和具体分数】以语文成绩为例
chinese_one = max(chinese_result)
print("语文第一名:姓名:%s,分数:%d" %(student_name[chinese_result.index(chinese_one)],chinese_one))
chinese_two = sorted(chinese_result)[8]
print("语文第二名:姓名:%s,分数:%d" %(student_name[chinese_result.index(chinese_two)],chinese_two))
chinese_three = sorted(chinese_result)[7]
print("语文第三名:姓名:%s,分数:%d" %(student_name[chinese_result.index(chinese_three)],chinese_three))
chinese_last_one = sorted(chinese_result)[0]
print("语文倒数第一名:姓名:%s,分数:%d" %(student_name[chinese_result.index(chinese_last_one)],chinese_last_one))
chinese_last_two = sorted(chinese_result)[1]
print("语文倒数第二名:姓名:%s,分数:%d" %(student_name[chinese_result.index(chinese_last_two)],chinese_last_two))
chinese_last_three = sorted(chinese_result)[2]
print("语文倒数第三名:姓名:%s,分数:%d" %(student_name[chinese_result.index(chinese_last_three)],chinese_last_three))
# 需求2:统计出总分的前三名和后三名
student_total_result = []
for i in student_result:
student_total_result.append(sum(i))
print(student_total_result)
# 打印前三名
total_one = sorted(student_total_result)[9] # 获取第一名分数
total_one_index = student_total_result.index(total_one) # 获取第一名分数的索引
# 打印第一名的姓名和总分均分
print("总分第一名【姓名:%s,分数:%d,均分:%.2f】" %(student_name[total_one_index],total_one, total_one/3))
# 打印第一名的分数明细
print("\t\t 语文:%d,数学:%d,英语:%d" % (student_result[total_one_index][0], student_result[total_one_index][1], student_result[total_one_index][2]))
total_two = sorted(student_total_result)[8]
print("总分第二名【姓名:%s,分数:%d,均分:%.2f】" %(student_name[student_total_result.index(total_two)],total_two, total_two/3))
total_three = sorted(student_total_result)[7]
print("总分第三名【姓名:%s,分数:%d,均分:%.2f】" %(student_name[student_total_result.index(total_three)],total_three, total_three/3))
# 需求3:在(50-100)的数字中,那些数字没有在三门的分数中出现过
total_number = set()
for i in range(50, 101):
total_number.add(i)
had_number = (set(chinese_result) | set(maths_result) | set(english_result))
print("未出现的数字有:", (total_number-had_number))
执行结果:
C:\python\python.exe C:/python/demo/file3.py
['王一', '胡二', '张三', '李四', '赵五', '马六', '杨七', '刘八', '孙九', '陈十']
66, 80, 83, 51, 52, 86, 54, 55, 60, 94
98, 69, 74, 75, 77, 82, 52, 89, 92, 95
96, 66, 71, 72, 85, 88, 92, 61, 95, 63
[66, 80, 83, 51, 52, 86, 54, 55, 60, 94]
[98, 69, 74, 75, 77, 82, 52, 89, 92, 95]
[96, 66, 71, 72, 85, 88, 92, 61, 95, 63]
[[66, 98, 96], [80, 69, 66], [83, 74, 71], [51, 75, 72], [52, 77, 85], [86, 82, 88], [54, 52, 92], [55, 89, 61], [60, 92, 95], [94, 95, 63]]
语文第一名:姓名:陈十,分数:94
语文第二名:姓名:马六,分数:86
语文第三名:姓名:张三,分数:83
语文倒数第一名:姓名:李四,分数:51
语文倒数第二名:姓名:赵五,分数:52
语文倒数第三名:姓名:杨七,分数:54
[260, 215, 228, 198, 214, 256, 198, 205, 247, 252]
总分第一名【姓名:王一,分数:260,均分:86.67】
语文:66,数学:98,英语:96
总分第二名【姓名:马六,分数:256,均分:85.33】
总分第三名【姓名:陈十,分数:252,均分:84.00】
未出现的数字有: 50, 53, 56, 57, 58, 59, 62, 64, 65, 67, 68, 70, 73, 76, 78, 79, 81, 84, 87, 90, 91, 93, 97, 99, 100
Process finished with exit code 0
第二十节,基本数据类型,集合set综合应用新数据更新老数据
基本数据类型,集合set、综合应用新数据更新老数据创建两个字典新数据,更新原始数据,a为原始数据,b为新数据1,分别获取到a字典和b字典的key(键),将两个字典的键分别转换成两个集合2,找出a2集合里存在,b2集合里不存在... 查看详情
javase案例04——io流综合运用案例案例(代码片段)
...字符输入流对象包装字符输入流接通源文件定义一个List集合用于存储每段文章定义一个循环按照每行读取每段文章,存在List集合中去对L 查看详情
容器集合(集合的进阶,collection,list,set,map,map集合的综合使用--斗地主案列,并发修改异常,列表迭代器,java面试中几个集合面试题)(代码片段)
目录集合的体系结构Collection集合:collection集合的常用方法:List集合:List集合特有的方法:ArrayList集合:LinkedList集合: Set集合:HashSet集合:HashSet保证元素唯一性源码分析:TreeSet集合:Map集合&... 查看详情
从零开始的java开发1-6-5集合综合案例:播放器管理(代码片段)
文章目录播放器管理:概述和需求分析详细设计歌曲类Song播放列表类PlayList播放器类PlayListCollection主业务代码三个菜单总体代码播放器管理:概述和需求分析需求分析:播放列表管理播放器管理播放列表管理主要功能... 查看详情
4集合set的功能介绍
集合是易变(可改变)和无序聚集。集合set支持迭代,很像无值(或仅有键的)字典,用花括号表示{}。 1、集合的创建:可以通过调用内建函数set()来创建,及向其传递一个迭代,该迭代的项目成为形成集合的成员。集合也... 查看详情
spark基础-scala学习(集合)(代码片段)
集合scala的集合体系结构ListLinkedListSet集合的函数式编程函数式编程综合案例:统计多个文本内的单词总数scala的集合体系结构scala中的集合体系主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trait。这个结构与java... 查看详情
set集合(代码片段)
HashSet:HashSet底层数据结构是哈希表.HashSet不是线程安全的集合元素可以是null哈希表:是一个元素为链表的数组,综合了数组和链表的优点当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,... 查看详情
javase基础---集合之set
一.介绍案例一 测试代码:importjava.util.HashSet;importjava.util.Iterator;importjava.util.Set;publicclasstest publicstaticvoidmain(String[]args) Setset=newHashSet(); set.add("blue 查看详情
java零基础小白学习免费教程day14-set&hashmap(代码片段)
day14_JAVAOOP课程目标1.【理解】Set集合的特点2.【理解】Set集合不重复的原理3.【掌握】HaseSet集合的基本使用4.【理解】LinkedHashSet的特点5.【理解】Map集合的特点6.【掌握】HashMap的使用7.【理解】LinkedHashMap的特点8.【掌握】Map集合的... 查看详情
java零基础小白学习免费教程day14-set&hashmap(代码片段)
day14_JAVAOOP课程目标1.【理解】Set集合的特点2.【理解】Set集合不重复的原理3.【掌握】HaseSet集合的基本使用4.【理解】LinkedHashSet的特点5.【理解】Map集合的特点6.【掌握】HashMap的使用7.【理解】LinkedHashMap的特点8.【掌握】Map集合的... 查看详情
第1章综合练习
...习一A:键盘录入3个学生信息(学号,姓名,年龄,居住地)存入集合,要求学生信息的学号不能重复B:遍历集合把每一个学生信息存入文本文件C:每一个学生信息为一行数据,每行学生的学号,姓名,年龄和居住地在文件中均以逗号分隔1.1.1案... 查看详情
react综合案例-todolistlocalstorage缓存数据(代码片段)
1、工具类storage.jsvarapp=set(key,value)localStorage.setItem(key,JSON.stringify(value));,get(key)returnJSON.parse(localStorage.getItem(key));,delete(key)localStorage.removeItem(key);,countFalseNum(key)letcount=newNumber(0);letlist=JSON.parse(localStorage.getItem(key));list.map(function(value,key... 查看详情
集合框架
1:登录注册案例(理解)2:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组)联想新华字典。 B:哈希表底层依赖两个方法:hashCode()和equals(),必须都重... 查看详情
java:treemap集合探究(代码片段)
文章目录1.TreeMap集合1.1TreeMap集合概述和特点2.TreeMap综合案例2.1案例一:按照年龄(姓名)进行排序并遍历2.1.1代码实现2.2案例二:统计字符串中每个字符出现的次数2.2.1代码实现3.TreeMap和HashMap的关联与区别1.TreeMap... 查看详情
javase学习总结(十三)set集合hashset集合linkedhashset集合treeset集合比较器的使用利用set集合实现去重(代码片段)
JavaSE学习总结(十三)Set集合/HashSet集合/LinkedHashSet集合/TreeSet集合/比较器的使用/利用Set集合实现去重一、Set集合Set集合是Collection集合的一个子接口,实际上Set就是Collection,只是行为略有不同:Set集合不保存... 查看详情
案例11:高层综合楼防火案例分析
案例11:高层综合楼防火案例分析(一) 建筑分类和耐火等级:总平面布局 防火分区:消防水泵设置规定 锅炉房,变压器 查看详情
python数据类型(集合)
参考技术A 1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定) 2.基本功能是进行成员关系测试和删除重复元素 3.可以使用大括号或者set()函数创建... 查看详情
css3_综合案例
综合案例设置元素的width,还可以利用left和right 为了防止图片太小,background-size:100%100%; 查看详情