Python中的列表、元组和字典

Python中的列表、元组和字典

列表List

创建

访问

  • 通过索引进行访问

    • list = [1,2,3,4]
      a=list[0] # 1
      b=list[-1] # 4
  • 切片

    • [start : end :step] 以step为间隔截取start到end(不包含)之间的所有元素;支持负数索引;
      list[num:]表示从指定num开始到最后;
      list[:num]表示从开头到指定的num为止

相加(合并)

  • 列表只能和列表相加

乘法

  • 可列表包含的元素重复N次

    • 可用于填充列表

      • list = [0] * 20

判断是否包含某个元素

  • in ; not in

内置全局函数

  • 长度len()

    • len(list)
  • 最大值max()

    • max(list)
  • 最小值min()

    • min(list)

序列封包和序列解包

  • 序列封包

    • 将多个值付给一个变量时,自动将多个值封装成一个元组。val = 1,2,3 # val自动封装为一个元组
  • 序列解包

    • 将序列(元组和列表)直接赋给多个变量,序列元素自动依次赋值给每个变量

      • 赋给相同个数的变量

        • 可用于交换变量的值

          • x,y = y,x
      • 赋给不同个数的变量

        • 只解出部分变量,剩下的用带 * 号的变量(此时它是一个列表)进行保存,它可以放在任意位置

          • *begin , last = range(10)

改变元素的操作

  • 增加列表元素

    • 末尾追加

      • append()单值追加

        • 如果追加的是元组、列表等,会将其整体作为单个元素追加,形成嵌套列表
      • extend()展开追加

        • 展开追加列表中的元素,一次追加到列表末尾
    • 任意位置插入

      • insert(index,item)

        • 第一个参数是插入的位置
        • 列表、元组等作为单个元素插入
  • 删除列表元素

    • del语句

      • 按索引删除

        • list = [0,1,2,3,4]
          del list[0] # 删除索引为0 的元素
      • 按切片删除,支持负数索引

        • list = [0,1,2,3,4]
          del list[0:2] # 删除从0到2(不包含2)的元素
      • 指定步长的切片删除,支持负数索引

        • list = [0,1,2,3,4]
          del list[0:3:2] # 以间隔为2的方式删除从0到3(不包含3)的元素
      • del可以删除普通变量

    • remove()删除元素本身

      • 根据元素本身的值删除元素,而非根据索引

      • 只删除找到的第一个元素

        • list = [0,1,2,0,4]
          lsit.remove(0) # 只删除第一个0,列表变为[1,2,0,4]
      • 如果没有找到要删除的元素会引发ValueError错误

    • clear()清空列表所有元素

      • 执行清空操作列表将变为空列表

        • list = [0,1,2,0,4]
          list.clear() # []
  • 修改列表元素

    • 修改单个元素

      • 正数索引

        • list = [0,1,2,3]
          list[0] = 100
      • 负数索引

        • list = [0,1,2,3]
          list[-1] = 100
    • 使用切片修改多个元素(不能使用单个值)

      • 不要求新赋值的元素个数与原来的元素个数相等

      • 批量插入

        • 对列表中空的slice赋值,就成为了列表插入元素

          • list = [1,2,3]
            list[2:5] = [1,2,3,4,5,6] # [1, 2, 1, 2, 3, 4, 5, 6]
      • 批量删除

        • 将列表其中一段赋值为空列表,就成为从列表中批量删除元素

          • list = [1,2,3,4,5]
            list[3:] = [] # [1, 2, 3]
      • 使用切片对字符串进行赋值

        • 自动将字符串当做序列处理,每个字符都是一个元素

          • list = [1,2,3]
            list[2:3] = ‘list’ # [1, 2, ‘l’, ‘i’, ‘s’, ‘t’]
      • 指定step

        • 要求赋值列表元素个数与所替换列表元素个数相等

          • list = list(range(1,10))
            list[2:9:2] = [‘a’,‘b’,‘c’,‘d’] # [1,2,‘a’,4,‘b’,6,‘c’,8,‘d’]
  • 其他方法

    • pop()

      • 将列表当做“栈”使用,实现元素出栈功能
    • reverse()

      • 将列表元素反转
    • sort()

      • 对列表元素进行排序

        • 默认排序

        • 自定义排序

          • 指定关键字参数

            • key

              • 比较大小的依据
            • reverse

              • 指定排序方式,默认从小到大,设为True则改为从大到小
          • 示例

            • list = [‘python’,‘java’,‘php’,‘javascript’]
              list.sort(key=len,reverse=True) # [‘javascript’, ‘python’, ‘java’, ‘php’]

其他方法

  • count()

    • 统计列表中某个元素出现的次数

      • list = [1,2,3,3,3,4]
        list.count(3) # 3
  • index()

    • 判断某个元素在列表中出现的位置
      只返回第一个匹配到的位置

      • list.index(3) # 2
    • 指定区间进行查找

      • list = [1,2,3,3,3,4]
        list.index(3,3,5) # 3

遍历

  • while

    • while i < len(list):
  • for-in

    • for ele in list:

      • 遍历值
    • for i in range(0,len(list)):

      • 遍历索引

元组tuple

字典dict

创建字典

  • {key:value}

    • person = {‘name’:‘flten’,‘age’:24}
  • 传入多个列表或元组参数作为key-value对

    • personList = [(‘flten01’,22),(‘flten02’,23),(‘flten03’,24)]
      dictPerson = dict(personList)
  • 通过为dict指定关键字参数创建字典

    • dictP = dict(flten=24,echo=23) # {‘flten’:24,‘echo’:23}
  • 根据给定的多个key创建字典

    • 只能传入list或tuple

    • key对应的默认值是 None

      • a_dict = dict.fromkeys([‘a’,‘b’]) # {‘a’:None,‘b’:None}
    • 可以传入一个默认的value

      • a_dict = dict.fromkeys([‘a’,‘b’],6) # {‘a’:6,‘b’:6}

字典操作

    • 添加单个key-value对

      • 为不存在的key直接赋值
        person[‘wall’] = 22
    • del

      • 使用del语句根据key删除字典中的key-value对
    • pop()

      • 获取指定key对应的value,并删除这个key-value对
    • clear()

      • 清空字典
    • 对字典中存在的key-value直接赋值进行覆盖

    • update()

      • 如果字典中存在对应的key-value对,则覆盖
      • 如果字典中不存在则添加key-value
    • 通过dict[key]直接访问

      • 不存在时会报错
    • get()

      • 不存在时返回None

        • 可用于判断字典中是否存在key-value对
    • setdefault()

      • 设置一个默认value,不存在时将key对应的value设为这个值并且返回这个value
      • 总能返回指定key对应的value
    • 批量

      • items()

        • 获取字典中所有的 key-value 对

          • 转成列表后返回的元素是元组
      • keys()

        • 获取字典中所有的key
      • values()

        • 获取字典中所有的value

遍历

  • 遍历key-value对

    • for key,val in my_dict.items():
  • 遍历所有key

    • for key in my_dict.keys()
  • 遍历所有value

    • for val in my_dict.values()

思维导图

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值