Python学习笔记(七)集合与字典

容器主要有:列表、集合、字典等

1、集合

  • 集合中的元素不以特定顺序存储,也不能通过位置访问,与数学中集合的定义类似,集合操作比列表操作要快
  • 创建和使用集合:直接指定初始化,也可以用set函数将序列转换为集合
cast = {"Luigi", "Gumbys", "Spiny"}    #创建集合使用大括号,创建列表使用中括号,创建元组使用小括号
  • 不能使用{}创建空集合,使用没有参数的set函数来创建
  • 获取长度:len函数
  • 判断集合中是否存在某个元素:if "Luigi" in cast :语句\
  • 访问:不能使用下表运算符来访问集合的元素,直接用for循环来遍历,但是顺序是不确定的
for character in cast :
    print(character)
  • 排序:使用sorted函数可以将集合返回一个元素按序排好的列表
  • 增加和删除元素:使用add方法添加元素,但是集合中不能添加重复的元素;使用discard方法删除已经存在在集合中的元素,若该元素不存在不会有效果;使用remove方法会删除已经存在的元素,若元素不存在会抛出异常;使用clear方法删除集合中的所有元素
  • 子集:使用issubset方法判断一个集合是否是另一个集合的子集
if canadian.issubset(british) : 
    print("canadian是britisn的一个子集")

也可以使用==和=!来测试两个集合的相等性

  • 并集、交集和差集:使用union方法返回一个新的集合,是两个集合的并集;使用intersection方法得到两个集合的交集;使用difference方法返回两个集合的差集,有顺序关系,是前者减去后者
  • 不能创建包含集合的集合,无法对一个可变的值进行哈希,但是可以对元组进行哈希

2、字典

  • 定义:字典是在键和值之间保持关联的容器,字典中的每个键有个关联的值,键是唯一的,但是一个值可能会被关联到多个键上。优点类似函数的定义 ,可以类比键是函数中的自变量,值是函数中的因变量
  • 创建字典:使用大括号,空的大括号表示空的字典,而不是集合,使用dict函数可以创建一个字典的副本
contacts = {"Fred" : 7235591, "Mary" : 3841212, "Bob" : 3841212, "Sarah" : 2213278}
  • 下标运算符用来返回一个键对应的值,虽然可以用下标运算符来访问字典但是字典不是顺序类型的容器;提供给下标运算符的键必须是合法的键,否则会抛出KeyError异常,in运算符来判断一个键是否在字典中
  • 增加和修改项:字典属于可变容器,使用下标运算符为字典添加新的项;使用pop方法,将键作为参数,可以删除整个项
  • 遍历字典的键:使用for循环遍历字典中独立的键,但是顺序是按照哈希的顺序排序的并非初始顺序
for key in contacts : 
    print(key)        #会输出每一个键
  • 遍历字典的键值对:使用类似数组的方法,将键当做是下标
  • 遍历字典的值:使用value方法
phonenumbers = []
for number in contacts.values() :
    phonenumbers.append(number)

使用list方法可以创建一个新的列表

  • items方法:使用items方法可以返回包含项的键和值的元组,第一个位置上是项的键,第二个位置上是项的值,元组可以用下标运算符访问,元组使用小括号表示

3、复杂结构

  • 包含集合的字典:每一个键对应一个集合,这个集合作为这个键的值,整体上看是一对多,使用集合可以避免重复
  • 包含列表的字典:每一个键对应一个列表,列表允许重复
  • 大型Python程序:包含一个驱动模块和一个或多个补充模块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值