概述
元组(Tuple)
- 有序的集合
- 通过偏移来取数据
- 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
在处理一组对象时,这个组默认是元组类型。
注:
- tuple类型转换,想修改先用list方法将元组转换成列表,再将修改后的列表用tuple方法生成新元组
- 那为什么有列表还要有元组呢
(元组不可变的好处)保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,确保方法或者接口不会改变我们的数据从而导致程序问题。
集合(Set)
集合是没有顺序的概念。所以不能用切片和索引操作。
- 创建集合。set():默认是可变的 frozenset():不可变的
- 添加操作:add,update
- 删除 remove
- 成员关系 in,not in
- 交集,并集,差集 & | -
- set去重:利用集合的单一性清除列表内容重复的元素。
可变集合
info = set('abc')
info.add('python')##添加单个对象到集合里
print info
info.update('python')##把对象里的每个元素添加到集合里
print info
info.remove('python')
print info
不可变集合
t = frozenset('haha')
##不能进行添加,修改和删除的操作。
成员操作 in,not in
print 'a' in info
print 'h' in t
print 'jay' not in info
判断2个集合是否相等,之和元素本身有关,和顺序无关。
print set('abc') == set('cba')
并集,交集,差集
print set('abc') | set('cbdef') ##并集
print set('abc') & set('cbdef') ##交集
print set('abc') - set('cbdef') ##差集
liststr = ['haha','gag','hehe','haha']
for循环在set中的小应用:
m = []
for i in liststr:
if i not in m:
m.append(i)
print m
m = set(liststr)
print list(m)
字典dict
字典的特点
字典是无序的,它不能通过偏移来存取,只能通过键来存取。
字典 = {‘key’:value}
key类似我们现实的钥匙,而value则是锁。一个钥匙开一个锁,内部没有顺序,通过键来读取内容,可嵌套,方便我们组织多种数据结构,并且可以原地修改里面的内容,属于可变类型。
组成字典的键必须是不可变的数据类型,比如,数字,字符串,元组等,列表等可变对象不能作为键.即键key必须是可哈希(hashable)的。
不允许一个键对应多个值。
创建字典。{}和dict()
定义方法:
info = {'name':'lilei', 'age': 20}
dict内置方法:
info = dict(name='lilei',age=20)
添加内容 a[‘xx’] = ‘xx’
info['phone'] = 'iphone5'
修改内容 update() ,
update()的参数是一个字典的类型,他会覆盖相同键的值。
info['phone'] = 'htc'
info.update({'city':'beijing','phone':'nokia'})
删除 del,clear(),pop()
del info['phone']
#删除某个元素
info.clear()
#删除字典的全部元素
info.pop('name')
#注意和列表pop方法的区别
in 和 has_key() 成员关系操作
返回布尔值,比如:
phone in info
info.has_key('phone')
字典的几个重要方法
- keys(): 返回的是列表,里面包含了字典的所有键。
- values():返回的是列表,里面包含了字典的所有值。
- items():生成一个字典的容器:[()]
get():从字典中获得一个数据
info.get('name') info.get('age2',’22’) #第二个参数可选,设置时表示没有该键时返回的默认值。
hash():本身并不是为字典设计的方法,可以判断某个对象是否可以做一个字典的键。将一个对象作为参数传递给hash()返回这个对象的哈希值。
最后
以上就是懵懂睫毛膏为你收集整理的Python基本数据结构之元组、集合与字典的全部内容,希望文章能够帮你解决Python基本数据结构之元组、集合与字典所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复