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. 集合类型转换
    
  • 遗忘的知识点

posted @ 2021-06-03 21:35  陈皮是味药  阅读(153)  评论(0)    收藏  举报