day05-列表和字典相关操作

列表相关操作

  1. 加法和乘法运算

    • 列表1 + 列表2 – 将两个列表合并并产生一个新的列表

      list1 = [10,20,30]
      list2 = [100,200]
      print(list1 + list2)#[10,20,30,100,200]
      
    • 列表 * N — 将列表中的元素重复N次产生一个新的列表

      print(list1 * 3)#[10,20,30,10,20,30,10,20,30]
      
  2. in 和 not in

    • 数据 in 列表 — 判断列表中是否存在指定数据对应的元素

    • 数据 not 列表 — 判断列表中是否不存在指定数据对应的元素

      print(10 in list1)
      print(11 in list1)
      print([10, 20] in list1)#False 因为list中没有[10,20]这个列表元素
      
  3. 相关函数

    • max(列表)、min(列表)

      list1 = [10, 23, 45, 67, 91]
      print(max(list1), min(list1))
      
    • sorted(列表) – 将列表中的元素从小到大排序,产生一个新的列表

    • sorted(列表,reverse=True) – (将列表中的元素从大到小排序,产生一个新的列表)

      list = [10, 230, 45, 670, 91]
      new_list1 = sorted(list1)
      print(new_list1) #[10, 45, 91, 230, 670]
      
      list1 = [10, 230, 45, 670, 91]
      new_list1 = sorted(list1,reverse = True)
      print(new_list1)
      
    • len(列表) – 获取列表长度(列表中元素的个数)

      print(len(list1))
      
    • list(数据) – 将指定的数据转换成列表(这儿的数据必须是序列)

      • 所有的序列都可以转换成列表,转换成列表的时候,序列中的元素就是列表的元素
      #例
      stu1 = '13124'
      test=list(stu1)
      print(test)
      

字典

  1. 字典存在的价值

    • 需求:定义一个变量保存一个学生的信息

      stu1 = {'name':'小明','年龄': 25,'性别':'男', '身高': 175}
      print(stu1['name'])
      print(stu1['身高'])
      
    • 结论:需要同时保存多个意义不同的数据就使用字典;需要同时保存多个意义相同的数据就使用列表

  2. 什么是字典(dict)

    • 容器:将{}作为容器的标志,里面多个键值用逗号隔开(一个键值对就是一个元素):{键1:值1,键2:值2,键3:值3,… }

    • 字典是可变的(支持增删改);字典无序(顺序不影响结果;不支持下表操作)

    • 键的要求

      • 不可变类型的数据才能作为字典的键(数字、字符串、布尔、空值、元组),一般使用字符串作为字典的键。
      • 键是唯一的
    • 值的要求:没有要求

      #空字典
      dict1 = {}
      
      #字典是无序
      print({'a': 10,'b': 20} == {'b':20,'a':10})
      
      #字典的键必须是不可变类型的数据
      dict2 = {1:10,'a':22,True:32,(12,32):23}
      print(dict2)
      
      #键是唯一的
      dict3 = {'a':12 , 'js':23}
      print(dict3)
      
      dict4 = {'a':22 , 'js':234}
      print(dict3)
      print(dict4)
      
字典的基本操作
  • 注意:字典保存数据真正想要保存的是值,键是用来对值进行区分和说明
  1. 查 — 获取字典的值

    • 查单个 – 获取一个值

      """
      a.字典[键]  ---  获取一个值
      b.字典.get(键) --- 获取字典中指定键的值,如果键不存在不会报错,并且会返回None
      c.字典.get(键,默认值)  --- 获取字典中指定键对应的值;如果键不存在不会报错,并且返回默认值
      """
      dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'}
      
      print(dog['age'])
      print(dog['gender'])
      print(dog['weight'])#报错,键不存在
      
      print(dog.get('weight'))#没有键值,不会报错,会返回None
      
      print(dog.get('weight',0))#没有键值,返回默认值0
      
      #生活中的字典:定义一个变量保存一个班级信息
      class1 = {
          'name': 'python2302',
          'address': '11教',
          'teacher': {'name': '余婷', 'age': 18, 'gender': '女', 'qq': '726550822'},'header_teacher': {'name': '舒玲', 'age': 18, 'gender': '女', 'tel': '110'},
          'students': [
              {'name': 'stu1', 'age': 19, 'gender': '男', 'link_man': {'name': '张三', 'tel': '120'}},
              {'name': 'stu2', 'age': 16, 'gender': '女', 'link_man': {'name': '李四', 'tel': '119'}},
              {'name': 'stu3', 'age': 22, 'gender': '女', 'link_man': {'name': '老王', 'tel': '234'}},
              {'name': 'stu4', 'age': 17, 'gender': '男', 'link_man': {'name': '赵六', 'tel': '2112'}},
              {'name': 'stu5', 'age': 29, 'gender': '男', 'link_man': {'name': '邓七', 'tel': '5482'}},
              {'name': 'stu6', 'age': 25, 'gender': '女', 'link_man': {'name': '王八', 'tel': '9223'}}
          ]
      }
      sum=0
      n=0
      print('班级名称',class1['name'])
      print('讲师的名字和qq',class1['teacher']['name'],class1['teacher']['qq'])
      print('班主任的电话',class1['header_teacher']['tel'])
      print('所有学生的名字:')
      for i in class1['students']:
          print(i['name'])
      print('所有未成年学生的名字和性别:')
      for i in class1['students']:
          if i['age'] < 18:
              print(i['name'],i['gender'])
      print('所有学生的联系人名字:')
      for i in class1['students']:
          print(i['name'],'的联系人名字是',i['link_man']['name'])
      for i in class1['students']:
          if i['gender'] == '男':
              sum += i['age']
              n += 1
      print('所有男生的平均年龄',sum/n)
      
    • 遍历

      '''
      for 变量 in 字典:
          循环体(变量依次取到的是字典的键)
      '''
      dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'}
      for x in dog:
          print(x,dog[x])
      
  2. #1.字典[键] = 值 ----- 如果键不存在就在字典中添加键值对
    #2.字典.setdefault(键,值)  ---  在字典中添加键值对(键如果存在不会修改对应的值)
    dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'}
    print(dog)
    
    dog['weight'] = 10
    print(dog)
    
    dog.setdefault('weight','20')
    print(dog)
    
  3. #字典[键] = 值---------如果键存在就修改指定键对应的值
    dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'}
    print(dog)
    
    dog['name'] = '财财'
    print(dog)
    
  4. 删 – 删除键值对

    #del 字典[键]  --删除字典中指定键对应的键值对
    dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'}
    print(dog)
    
    del dog['name']
    print(dog)
    
    #字典.pop(键) --- 取走字典中键指定的值
    dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'}
    print(dog)
    
    result = dog.pop('name')
    print(dog,result)
    

字符串和元组

  1. 字符串(str)

    """
    容器:将''或""作为容器的标志,里面的每一个符号就是字符串中的每个元素。例如:'abc'、'10,20,30'
    字符串是不可变的;字符串是有序的(支持下表操作)
    元素:字符串的元素又叫字符,分为普通字符和转义字符两种
    
    \n  --  换行
    \t  --  水平制表符(tab键)
    
    
    """
    
    print('abc')
    print('\mabc')
    print('----------------------------')
    print('\nab\nc')
    
    • 字符串查操作

      #字符串获取元素的方法和列表一样
      msg = 'hello world!'
      print(msg[0])
      print(msg[-1])
      
      for i in msg:
          print(i)
          
      str1 = 'abc'
      str2 = '123'
      print(str1 + str2)#abc123
      print(str1 * 3)#abcabcabc
      
  2. 元组

    #元组就是不可变的列表:(元素1,元素2,元素3,...)
    #如果要对元组中的数据做更改,可以先将元组转为列表list
    t1 = (10,20,30,40,50)
    print(t1[0])
    print(t1[-1])
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值