python字典类型数据_Python数据类型—字典和集合

字典

字典用于存多个值,使用key-value存取,取值速度快。key必须是不可变类型(也称作可hash类型),value可以是任意类型,字典中key是无序的。不可变类型的数据可以当作字典的key(数字,字符串,元组)

字典存值:

>>> dir={'a':1,'b':2,'c':3}

>>> dir['D']=4

>>> dir

{'b': 2, 'c': 3, 'D': 4, 'a': 1}

pop()删除字典的值:

>>> dir={'a':1,'b':2,'c':3}

>>> dir.pop('a')

1

>>> dir

{'b': 2, 'c': 3}

>>> dir={'a':1,'b':2,'c':3}

>>> dir.pop('aaa',None)

>>> dir.pop('aaa','not this value') # 参数指定在没有值时返回信息,避免报错

'not this value'

get() 取值,当值不存在时,可以指定返回值:

>>> dir={'a':1,'b':2,'c':3}

>>> dir.get('a')

1

>>> dir.get('ddd','None')

'None'

>>> dir.get('ddd')

>>>

popitem()删除值,随机删除:

>>> dir={'a':1,'b':2,'c':3}

>>> dir.popitem()

('b', 2)

取出所有的key和value:

>>> dir={'a':1,'b':2,'c':3}

>>> dir.keys()

dict_keys(['b', 'c', 'a'])

>>> dir.values()

dict_values([2, 3, 1])

>>> dir.items()

dict_items([('b', 2), ('c', 3), ('a', 1)])

>>> for key,value in dir.items():

... print(key,value)

...

b 2

c 3

a 1

clear()清空字典:

>>> dir={'a':1,'b':2,'c':3}

>>> dir.clear()

>>> dir

{}

copy()复制字典:

>>> dir={'a':1,'b':2,'c':3}

>>> L=dir.copy()

>>> L

{'b': 2, 'c': 3, 'a': 1}

fromkeys() 创建字符串:

>>> dic=dict.fromkeys(['a','b','c'],123123)

>>> dic

{'b': 123123, 'c': 123123, 'a': 123123}

update() 更新字典:

>>> dir={'a':1,'b':2,'c':3}

>>> a={'name':'xxx','age':23,'a':8888}

>>> dir.update(a)

>>> dir

{'b': 2, 'c': 3, 'age': 23, 'a': 8888, 'name': 'xxx'}

setdefault() 字典中加入列表:

>>> a={'b':1,'c':2}

>>> a.setdefault('D',[]).append('xx1')

>>> a.setdefault('D',[]).append('xx2')

>>> a.setdefault('D',[]).append('xx3')

>>> a

{'D': ['xx1', 'xx2', 'xx3'], 'b': 1, 'c': 2}

集合

集合主要用于关系运算和去重操作。集合是一组无序排列的可hash值,可以作为字典的key,其目的是使用不同的集合用来做关系运算,无需纠结于集合中的单个值。

集合的定义:

>>> a={1,2,1,1,'a','b'}

>>> a

{1, 2, 'a', 'b'}

>>> type(a)

成员运算:

>>> a={1, 2, 'a', 'b'}

>>> 'a' in a

>>> 'a' not in a

False

关系运算:

>>> a={1, 2,3,5,7}

>>> b={9,8,2,3,0}

>>> a & b # 求并集

{2, 3}

>>> a.intersection(b)

{2, 3}

>>> a | b # 求交集

{0, 1, 2, 3, 5, 7, 8, 9}

>>> a.union(b)

{0, 1, 2, 3, 5, 7, 8, 9}

>>> a - b # 求差集

{1, 5, 7}

>>> a.difference(b)

{1, 5, 7}

>>> b - a # 求差集

{8, 9, 0}

>>> a ^ b # 对称差集

{0, 1, 5, 7, 8, 9}

>>> a.symmetric_difference(b)

{0, 1, 5, 7, 8, 9}

父集与子集:

>>> s1={1,2,3,4,5}

>>> s2={1,2}

>>> s1 >= s2

True

>>> s2 <= s1

True

>>> s1 <= s2

False

集合添加元素:

>>> s2={1,2}

>>> s2.add('a')

>>> s2

{1, 2, 'a'}

集合是不可不变类型(可hash),只能向集合中添加不可变类型元素,如数字,字符串,和元组.

删除元素:

>>> a={1,2,3,5,7}

>>> a.pop()

1

>>> a

{2, 3, 5, 7}

删除指定元素:

>>> a={1,2,3,5,7}

>>> a.remove(7)

>>> a

{1, 2, 3, 5}

删除不存在的元素,不报错:

>>> a

{1, 2, 3, 5}

>>> a.discard(7)

>>> a

{1, 2, 3, 5}

>>> a.remove(7)

Traceback (most recent call last):

File "", line 1, in

KeyError: 7

数据类型小结

按存值个数区分:

标量/原子类型: 数字,字符串

容器类型:列表, 元组, 字典

按可变不可变区分:

可变: 列表,字典

不可变: 数字,字符串,元组

按访问方式区分:

直接访问: 数字

按照索引访问(序列类型): 字符串,列表,元组

key 访问(映射类型): 字典

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值