04、day04_列表(list)初识-删改查

列表的初识

  • WHY:int、bool、str

    • str:只能存储少量的数据,且无论切片还算对其进行任何操作,获取的内容全都是str类型,存储的数据单一。
  • WHAT:list

    • l1 = [100, 'Murphy', True, [1, 2, 3]] 承载任意数据类型,存储大量的数据。
    • Python常用的容器型数据类型。list列表,其他语言:Java:数组。
    • 列表是有序的,可按索引切片(步长)
  • 索引、切片

    • li = [100, 'Murphy', True, [1, 2, 3]]
      # 索引 index
      print(li[0], type(li[0]))
      print(li[1], type(li[1]))
      print(li[-1])
      
    • # 切片:顾头不顾腚
      li1 = [1, 3, 2, 'a', 4, 'b', 5, 'c']
      li2 = li1[0:3]
      print(li2)  # [1, 3, 2]
      
      li3 = li1[3:-2]
      print(li3)  # ['a', 4, 'b']
      
      li4 = li1[1:-1:2]
      print(li4)  # [3, 'a', 'b']
      
      li5 = li1[-3::-2]
      print(li5)  # ['b', 'a', 3]
      
  • 列表的创建方式

    • 方式一

      li = [1, 2, 'Murphy']

    • 方式二

      li = list('jfkdlajsfleijfdlafasd')

      print(li)

    • 方式三 :列表推导式

  • 增删改查

    • 增 【append:追加】

      li = ['Murphy', 'Mikie', '迪丽热巴', '吴磊']
      li.append('xx')
      # print(li.append('xx'))  # 这个是错误的方法,li.append()是一个动作,无法打印动作
      print(li)
      
    • li = ['Murphy', 'Mikie', '迪丽热巴', '吴磊']
      while 1:
          name = input("请输入新员工名字:(按Q退出不分大小写)")
          if name.upper() == 'Q':
              break
          li.append(name)
      print(li)
      
    • 插入 【insert】

    • 迭代追加 【extend】

      • 按照索引删 【pop()】# 按索引删除是有返回值的(返回删除的元素)

        li = ['Murphy', 'Mikie', '墨菲斯托', '迪丽热巴', '墨菲斯托', '吴磊']
        li.pop()  # 如果括号里不填索引值(啥也不写),则默认删除最后一个
        print(li)  # ['Murphy', 'Mikie', '墨菲斯托', '迪丽热巴', '墨菲斯托']
        
      • 指定元素删 【remove()】,如果有重名默认删除从左起第一个

        li.remove('墨菲斯托')
        print(li)  # ['Murphy', 'Mikie', '迪丽热巴', '墨菲斯托', '吴磊']
        
      • clear清空

        li.clear()
        print(li)  # []
        
      • del ,可以按照索引去删,还可以按切片去删

        del li[-1]
        print(li)  # ['Murphy', 'Mikie', '墨菲斯托', '迪丽热巴']
        
      • 按索引改

        li[0] = 'Mike'
        print(li)  # ['Mike', 'Mikie', '墨菲斯托', '迪丽热巴', '墨菲斯托']
        
      • 按照切片改(了解),

        li = ['Murphy', 'Mikie', '墨菲斯托', '迪丽热巴', '墨菲斯托', '吴磊']
        li[4:] = 'jfdlsjklf'
        print(li)  # ['Murphy', 'Mikie', '墨菲斯托', '迪丽热巴', 'j', 'f', 'd', 'l', 's', 'j', 'k', 'l', 'f']
        
      • 按照切片加步长(必须一一对应了)

        li = ['Murphy', 'Mikie', '墨菲斯托', '迪丽热巴', '墨菲斯托', '吴磊']
        li[::2] = 'ABC'
        print(li)  # ['A', 'Mikie', 'B', '迪丽热巴', 'C', '吴磊']
        
      • 索引,切片(步长)

      • for循环查

        for i in li:
        	print(i)
        
  • 列表嵌套★★★★★

    • 先来个练习

      """
      1.将li中的'Murphy'变成大写放回原处
      2.给小列表[1, 'Mike', 3, ]追加一个元素'我爱python'
      3.将列表中的'Mike'通过字符串拼接的方式在列表中变成'Mikesb'
      """
      li = [1, 2, 'Murphy', [1, 'Mike', 3, ]]
      li[2] = li[2].upper()
      print(li)
      li[-1].append('我爱python')
      print(li)
      # li[-1][1] = li[-1][1] + 'sb'
      li[-1][1] += 'sb'
      print(li)
      
    • 再练一个

      """
      li0 = [2, 3, 'k', ['qwe', 20, ['k1', ['tt', 3, 'l']], 89], 'ab', 'adv']
      将列表li0中的'tt'变成大写
      将列表中的数字3变成字符串'100'
      将列表中的字符串'1'变成数字101
      """
      li0 = [2, 3, 'k', ['qwe', 20, ['k1', ['tt', 3, 'l']], 89], 'ab', 'adv']
      li0[3][2][1][0] = li0[3][2][1][0].upper()
      print(li0)
      li0[1] = '100'
      li0[3][2][1][1] = '100'
      print(li0)
      li0[3][2][1][-1] = 101
      print(li0)
      

元组

posted @ 2020-03-24 23:50  Murphy_Yang  阅读(195)  评论(0)    收藏  举报