python基础【四】:列表、字典、元组与集合

本文深入探讨了Python中的序列类型,包括列表、字典、元组和集合。列举了它们的基本操作,如创建、访问、修改和删除元素,以及排序、集合运算等。此外,还介绍了列表生成式和字典生成式等高级用法,是Python初学者和进阶者的重要参考资料。
摘要由CSDN通过智能技术生成

15 列表

  • 列表可存储不同类型的值

15.1 列表的基本操作

  • 创建列表:
r=[12,"i"]
print(r)
# [12, 'i']
r=list('1234')
print(r)
# ['1', '2', '3', '4']

  • 列表的特点:
  • 获取列表指定元素的索引(index()函数)
l=[1,2,3]
print(l.index(1))
# 0

  • 获取列表的多个元素(切片)
    • 切片会产生新的列表
l=[1,2,3]
print(l[1:])
# [2, 3]
  • 列表查询与遍历

    l=[1,2,3]
    print(1 in l)
    # True
    
  • 列表的增加操作

    l=[1,2,3]
    # 在末尾加一个元素
    l.append(4)
    print(l)
    # 在末尾加任意多元素,参数为列表
    l.extend([5,6])
    print(l)
    # 在第6个位置加上一个7元素
    l.insert(6,7)
    print(l)
    # 切片,把切出去的部分用新列表替换
    l[1:]=[8]
    print(l)
    
  • 列表的删除

    l=[1,1,2,3]
    # 删除1元素
    l.remove(1)
    print(l)
    # 删除第0个元素,若不指定则删除最后一个元素
    l.pop(0)
    print(l)
    # 切片出第0个到第1个元素
    print(l[0:1])
    # 清除全部元素
    l.clear()
    print(l)
    # 删除列表
    del(l)
    print(l)
    23
    
    # [1, 2, 3]
    # [2, 3]
    # [2]
    # []
    # 报错,没有l变量
    
  • 列表的排序

    • sort()不会产生新列表对象
    • sorted()会产生新的列表对象
    l=[3,2,1]
    # 不会产生新对象
    l.sort()
    print(l)
    # 会产生新对象
    r=sorted(l)
    print(l)
    
  • 列表生成式

    • 基本语法:
      • i for i in 迭代器
    # 生成一个1-9元素的列表
    lst=[i for i in range(1,10)]
    

16 字典

  • 以键值对的方式无序存储数据
  • 把key进过哈希函数计算得出位置
  • key要求为不可变序列
  • key不可重复

16.1 字典的基本操作

  • 创建字典:
  • 字典元素的获取
    s={"张三":100}
    t=s["张三"]
    print(t)
    # 设置默认查找值,当查字典没有的元素时返回默认值
    t=s.get("lisi",99)
    print(t)
    #100
    #99
    
  • key的判断、元素删除、元素新增

  • 获取字典视图
    s={"张三":100}
    # 获取所有key
    print(s.keys())
    # 获取所有值
    print(s.values())
    # 获取所有键值对
    print(s.items())
    #dict_keys(['张三'])
    # dict_values([100])
    # dict_items([('张三', 100)])
    
  • 字典遍历
    s={"张三":100}
    # item 获取的是key
    # s[item]获取值
    for item in s:
      print(item)
      print(s[item])
    
  • 字典生成式
    • 基本语法
      • for({列表:列表 for 列表,列表 in zip(列表, 列表)})
      s=[1,2,3]
      t=[4,5]
      print({s: t for s, t in zip(s, t)})
      
      • 若zip打包的两个列表元素数目不一样,则按元素数目少的列表打包

16.2 字典总结

17 元组

  • 是一个不可变序列

17.1 元组的基本操作

  • 元组的创建
    • 第一种方式可以省略小括号
    • 第三种方式如果省略逗号,会被认为是元素原来的类型
  • 为什么要把元组设计成不可变序列?
  • 遍历元组:
    t=1,2,3,4
    for i in t:
      print(i)
    
  • 元组生成式
    • 元组没有生成式

18 集合

  • 集合是没有value的字典

18.1 集合的基本操作

  • 集合的创建
    • 集合的元素不能重复
    • 空集合创建只能用内置函数进行设置
  • 集合的判断,新增,删除
    s={1,2,3}
    # 末尾增加一个元素
    s.add(4)
    print(s)
    # 末尾至少增加一个元素
    s.update([5])
    print(s)
    # 删除一个指定元素
    s.remove(2)
    print(s)
    # 删除一个指定元素
    s.discard(1)
    print(s)
    # 一次删除头部一个元素
    s.pop()
    print(s)
    # 清空元素
    s.clear()
    
  • 集合间的关系
    s={1,2,3,4}
    t={3,4}
    # 判断集合是否相等
    print(s==t)
    # 判断集合t是否是集合s的子集
    print(t.issubset(s))
    # 判断集合s的父集是否是t
    print(s.issuperset(t))
    # 判断两个集合是否是没有交集
    print(s.isdisjoint(t))
    
    #False
    #True
    #True
    #False
    
  • 集合的数学操作
    s={1,2,3,4}
    t={3,4,5,6}
    # 集合的交集
    print(s.intersection(t))
    print(s&t)
    
    # 集合的并集
    print(s.union(t))
    print(s|t)
    
    # 集合的差集
    print(s.difference(t))
    print(s-t)
    
    # 集合的对称差集
    print(s.symmetric_difference(t))
    print(s^t)
    
  • 集合生成式
    print({i for i in range(1,10)})
    

18.2 元组与集合总结

19 序列总结

  • 不可变序列还有字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值