python元组集合&字典

元组

元组(tuple)是列表类型中比较特殊的类型,因为它一旦创建就不能被修改。(补充解释一哈:像int类型的,当它的值发生改变,则它id也会发生改变;但是list你改变它的内容,它的地址就不会变;元组不可变,如果直接改变元组的值就会报错)元组类型在表达固定数据项、函数多返回值、多变量同步赋值、循环遍历等情况下十分有用。Python中元组采用逗号和圆括号来表示。
若要查询元组操作符可输入dir(tuple)

1. 元组是序列类型的一种扩展
  • 元组是一种序列类型,一旦创建就不能被修改
  • 使用小括号()或tuple()创建,元素间用逗号,分隔
  • 可以使用或不使用小括号
2.元组继承序列类型的全部通用操作
  • 元组继承了序列类型的全部通用操作
  • 元组因为创建后不能修改,因此没有特殊操作
  • 使用或不使用小括号
3.元组的一些简单操作
  1. 创建
    逗号必须
a = 1,2,3
type(a)
#<class 'tuple'>
  1. 计数count()
count(a)
#3
  1. 索引index()
a.index(2)
#1
  1. 组合
a = 1,2,3
b = 4,5,6
c = a + b
c
#1,2,3,4,5,6
  1. 复制
    通过*来复制需要的次数
  2. 删除del
    删除整个元组,删除之后再访问则报错

集合

集合数据类型是没有顺序的简单对象的聚集,且集合元素不重复。Python集合数据类型包括可变集合对象(set)和不可变集合对象(frozenset)。集合中元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本山都是可变数据类型,不能作为集合的元素出现。
大括号也可以创建集合,但是{}表示空的字典,因为字典也使用花括号定义。空集只能用set()

集合操作符

同样使用dir(set)

操作符描述
S_T或S.different(T)返回一个新集合,包括在集合S中但不在集合T中的元素
S_=T或S.different_update(T)更新集合S,包括在集合S中但不在集合T中的元素
S&T或S.intersection(T)返回一个新集合,包括同时在集合S和T中的元素
S&T或S.intersection_update(T)更新集合S,包括同时在其中的元素
S^T 或s.symmetric_difference(T)返回一个新集合,包括集合S和T中元素,但不包括同时在其中的元素
S^T 或s.symmetric_difference_update(T)更新集合S,包括集合S和T中元素,但不包括同时在其中的元素
SlT或S.union(T)返回一个新集合,包括集合S和T中所有元素
Sl=T或S.update(T)更新集合S,包括集合S和T中所有元素
S<=T或S.issubset(T)如果S与T相同或S是T的子集,返回True,否则返回False,可以用S<T判断S是否是T的真子集
S>=T或S.issuperset(T)如果S与T相同或S是T的超集,返回True,否则返回False,可以用S>T判断S是否是T的真超集
S.isdisjoint判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

Tip:加update时指集合的地址不变,在原集合上操作,并不创建一个新的集合

添加add

用()将需要添加的多个元素装起来,如果需要添加的元素已经存在则不会发生改变,与update不同的是add将字符串作为一个整体放入集合中,而update会将字符串拆散

移除remove

将需要移除的元素写在括号里,如果要移除的元素表示集合中的元素,则会报错(KeyError)

抛弃discard

与remove基本一样,不同的是如果元素不在集合内不会报错

弹出pop

pop不能加入参数否则会报错,并且是随机弹出集合中的一个元素

复制copy

虽然是复制,但是不是指针指向同一个id,即两个的id值是不同的,也就是说如果一个改变,另一个是不会变的

清空clear

清空即为空集合,不是不存在了,而是空集

拼接union

将两个集合拼接并返回一个新集合,集合还有一个功能就是去重,即有重复值就会被覆盖

字典

字典(dict,或映射map)是一组键/值对的数据结构。每个键对应于一个值。在字典中,键是唯一的,值可以不唯一。根据键可以查询到值。对象的哈希值。字典的键只能使用不可变的对象,但字典的值可以使用不可变或可变的对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号分割,整个字典包括在花括号 {} 中
映射类型是“键-值”数据项的组合,每个元素是一个键值对,即元素是(key,value),元素之间是无序的。键值对是一种二元关系。在python中,映射类型主要以字典(dict)体现。
Tip:字典打印出来的顺序与创建之初的顺序不同,字典是集合类型的延续,各个元素没有顺序之分

理解“映射

映射是一种键(索引)和值(数据)的对应。字典是实现键值对映射的数据结构,请理解以下基本原则:

  1. 字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息;
  2. 字典中元素以键信息为索引访问;
  3. 字典长度是可变的,可以通过对键信息复制实现增加或修改键值对。
字典类型是“映射”的体现

键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
采用大括号{}和dict()创建,键值对用冒号: 表示

映射的表达

映射无处不在,键值对无处不在
例如:统计数据出现的次数,数据是键,次数是值
最主要作用:表达键值对数据,进而操作它们

元素遍历

for k in d :
<语句块>
Tip:d[key]既可以索引,也可以赋值

创建

空字典的创建 a = dict()
非空字典的创建 b = dict(l=1, x=9)
通过二元组列表创建 dict = [(‘l’,1),(‘x’,9)]
通过dict和zip结合创建 dict(zip(‘lx’,[1,9]))
通过fromkeys()创建 dict.fromkeys(range(2),‘a’)
#{0:‘a’,1:‘a’}

查找与增加

字典最重要的用法是查找与特定键相对应的值,这通过索引符号来实现(中括号)
<值> = <字典变量>[<键>]
通过中括号也可以增加新的元素,直接使用大括号{}可以创建一个空的字典,并通过中括号[]向其增加元素

浅拷贝

浅拷贝就是只拷贝一层,拷贝最外面一层

键值操作
  • get(k[,d]):
    返回指定键的值,如果值不在字典中返回d值
  • D.keys():
    以列表返回一个字典所有的键
  • D.values():
    以列表返回一个字典所有的值
  • D.items():
    返回所有的键值对
  • D.setdefault(k[,d]):
    和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
  • D.popitem():
    随机从字典中取出一个键值对,以元组(key,value)形式返回
  • del D[key]:
    删除字典中某个键值对
更新

D.update([E, ]**F):
把另一个字典的键/值更新到原字典中

弹出

D.pop(k[,d]):
删除字典给定键 k 所对应的值,返回值为被删除的值。(k值必须给出)否则,返回d的值。

随机删除

D.popitem():
随机返回并删除字典中的一对键和值

清空

删除字典内所有元素

参考

参考1
参考2
参考3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值