python基础-day05-字典&列表&集合作业
今日作业
字典练习
- 
题目一:
1. 将列表中大于等于66的元素放入字典k1键对应的列表中 将列表中小于66的元素放入字典k2键对应的列表中 nums=[11,22,33,44,55,66,77,88,99,90] dic={ 'k1':[], 'k2':[] } - 
解题思路:
- 
关键点
1. 对比nums列表中的元素与数字66的关系(>= or <) 2. 对比后的元素怎么装填到dic字典内的'k1[]'、'k2[]'列表中去 - 
详细思路
1. 设置变量 i 采用for循环依次将nums列表中的元素赋值给i; 2. 利用 if 判断 i 是否 >= 66,如果成立则将 i 增加到一个空白列表中(空白变量预先定义) 否则(else)就将 i 增加到另外一个空白列表中(预先定义) 3. 将新得到的两个列表分别赋值给dic字典中的 'k1[]' 和 'k2[]' 
 - 
 - 
代码实现:
nums = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] dic = {'k1': [], 'k2': [] } l1 = [] l2 = [] for i in nums: if i >= 66: l1.append(i) dic['k1'] = l1 else: l2.append(i) dic['k2'] = l2 print(dic) - 
运行结果:
{'k1': [66, 77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]} - 
应用到的知识点
1. 列表变量赋值 l1 = [] l2 = [] 2. 列表的循环读取 for i in nums: 3. if 的流程控制 if i >= 66: l1.append(i) dic['k1'] = l1 else: l2.append(i) dic['k2'] = l2 4. 列表的尾部追增 l1.append(i) l2.append(i) 5. 字典value值得更改 dic['k1'] = l1 dic['k2'] = l2 - 
遗忘的知识点
1. append() 列表的尾部追增 - 
题目二:
s='hello jason jason say hello sb sb sb' 统计字符串中每个单词出现的次数 {'jason':2,...} - 
解题思路:
- 
关键点
1. 单词 2. 统计 3. 字典的生成 - 
详细思路
1. 字符串到单词的形式:用字符串str的内置方法 ".split()"对原有字符串进行分割,生成新的列表形式 "new_s" 2. 去除重复单词,得到核心单词(去重):用for循环和if判断出核心单词,用 ".append()"将去重后的单词依次 追增到事先定义好的空列表中"new_list" 3. 统计去重后的单词在原列表中出现的次数:再用for和if去重的同时用 ".count()"统计列表中重复单词的数量并 将得到的数用 ".append()"依次追增到一个新的列表 "new_list2"中 4. 核心单词列表和重复数量的列表放到字典:用len(new_list)中单词的数量并配合range 和 for 循环生成一个作 为字典Key和value的索引值,然后以 dict[key] = dict[vaule]的形式,在循环中依次放入对应的数据 
 - 
 - 
代码实现:
s = 'hello jason jason say hello sb sb sb' new_s = s.split(' ') new_list = [] # 盛装去重后的单词列表 new_list2 = [] # 盛装统计后的数字形成列表 new_dict = {} # for i in new_s: if i not in new_list: new_list.append(i) j = new_s.count(i) new_list2.append(j) for k in range(len(new_list)): new_dict[new_list[k]] = new_list2[k] print(new_s) # 分割后的单词集(列表类型数据) print(new_list) # 去重后的单词集 print(new_list2) # 单词重复的个数 print(new_dict) # 最终生成的字典 - 
运行结果:
['hello', 'jason', 'jason', 'say', 'hello', 'sb', 'sb', 'sb'] ['hello', 'jason', 'say', 'sb'] [2, 2, 1, 3] {'hello': 2, 'jason': 2, 'say': 1, 'sb': 3} - 
应用到的知识点
1. 字符串的分割:str变量名.split() 2. 列表数据的读取:for 循环 3. 列表的创建 变量名 = [] 4. 字典的创建 变量名 = {} 5. 流程控制 if 6. 成员运算 in not in 7. 列表的追增 list.append() 8. 字典key:value 一一对应追增 9. 字典值的读取方式 - 
遗忘的知识点
1. 字典的读取方式 2. split() str分割 3. count() 元素计数 4. append() 列表追增集合练习
 - 
题目三:
3.1 关系运算 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合 pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} 要求: 3.1.1 求出即报名python又报名linux课程的学员名字集合 3.1.2 求出所有报名的学生名字集合 3.1.3 求出只报名python课程的学员名字 3.1.4 求出没有同时这两门课程的学员名字集合3.2 去重并且保留原来的顺序 l = [11,22,33,22,22,33,11,22,55,66,66,77,77] 要求: 3.2.1 去重不保留顺序 3.2.2 去重并且保留顺序 - 
解题思路:
- 
关键点
3.1 集合中的交集、并集的处理 3.2 列表元素的读取 - 
详细思路
3.1 用集合的内置方法实现(& 两个集合共有元素——交集;| 两个集合所有元素——合集;- A集合独有的元素; ^ 共有元素之外的所有元素; 3.2 3.2.1 for 循环 读出原有列表的元素,并追增赋值给新的列表 3.2.1 列表类型直接转换成集合类型,集合类型直接去除重复的元素 
 - 
 - 
代码实现:
""" 3.1 关系运算 """ pythons = {'alex', 'egon', 'yuanhao', 'wupeiqi', 'gangdan', 'biubiu'} linuxs = {'wupeiqi', 'oldboy', 'gangdan'} print(pythons & linuxs) # & 共同 求出交集后生成新的集合 print(pythons | linuxs) # | 所有 去重后得到新的集合 print(pythons - linuxs) # - 单独一项 求得单选项得元素 print(pythons ^ linuxs) # ^ 共有之外共有之外各自集合的元素""" 3.2 去重并且保留原来的顺序 """ l = [11, 22, 33, 22, 22, 33, 11, 22, 55, 66, 66, 77, 77] new_list = [] for i in l: if i not in new_list: new_list.append(i) print(new_list) new_set = set(l) print(new_set) - 
运行结果:
""" 3.1 关系运算 """ {'wupeiqi', 'gangdan'} {'yuanhao', 'wupeiqi', 'gangdan', 'oldboy', 'egon', 'alex', 'biubiu'} {'egon', 'biubiu', 'alex', 'yuanhao'} {'alex', 'yuanhao', 'oldboy', 'egon', 'biubiu'}""" 3.2 去重并且保留原来的顺序 """ [11, 22, 33, 55, 66, 77] {33, 66, 11, 77, 22, 55} - 
应用到的知识点
1. 集合的内置方法:& | - ^ 2. for 循环 3. 成员运算 4. 集合类型转换 - 
遗忘的知识点
 
    最是秋雨悲凉,
多少落叶黄。
三十余载春秋梦,回首成过往。
静思量,向前方,莫待白头空沧桑。
                    
                
                
            
        
浙公网安备 33010602011771号