Python基本数据结构之元组、集合与字典

元组(Tuple)

  1. 有序的集合
  2. 通过偏移来取数据
  3. 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
    在处理一组对象时,这个组默认是元组类型

注:

  1. tuple类型转换,想修改先用list方法将元组转换成列表,再将修改后的列表用tuple方法生成新元组
  2. 那为什么有列表还要有元组呢
    (元组不可变的好处)保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,确保方法或者接口不会改变我们的数据从而导致程序问题。

集合(Set)

集合是没有顺序的概念。所以不能用切片和索引操作。

  1. 创建集合。set():默认是可变的 frozenset():不可变的
  2. 添加操作:add,update
  3. 删除 remove
  4. 成员关系 in,not in
  5. 交集,并集,差集 & | -
  6. 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()

  1. 定义方法:info = {'name':'lilei', 'age': 20}

  2. 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')

字典的几个重要方法

  1. keys(): 返回的是列表,里面包含了字典的所有键。
  2. values():返回的是列表,里面包含了字典的所有值。
  3. items():生成一个字典的容器:[()]
  4. get():从字典中获得一个数据

    info.get('name')  
    info.get('age2',’22’)  #第二个参数可选,设置时表示没有该键时返回的默认值。
    
  5. hash():本身并不是为字典设计的方法,可以判断某个对象是否可以做一个字典的键。将一个对象作为参数传递给hash()返回这个对象的哈希值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值