美文网首页
3.dict和set

3.dict和set

作者: FMengz | 来源:发表于2018-07-03 18:06 被阅读7次

dict字典

dict全称dictionary,即字典。在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

声明一个dict变量

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

查询数据

d['Michael']   ---   95

添加数据

d['Adam'] = 67
d   ---   {'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Adam': 67}

更改数据

d['Adam'] = 77
d   ---   {'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Adam': 77}

如果key不存在,dict就会报错:

>>> d['Adan']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Adan'

避免key不存在的错误

  • 方法一
    通过in判断key是否存在
'Thomas' in d   ---   False
  • 方法二
    通过dict提供的get()方法
d.get('Thomas')   ---   None

注意:返回None的时候Python的交互环境不显示结果。

指定get()方法的返回结果:

d.get('Thomas', -1)   ---   -1
d.get('Thomas', 'key不存在')   ---   'key不存在'

删除数据
要删除一个key,用pop(key)方法,对应的value也会从dict中删除

# 此时d的值为:{'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Adam': 77}
d.pop('Bob')   ---   75
d   ---   {'Michael': 95, 'Tracy': 85, 'Adam': 77}

set集合

set是一个集合,集合中不能包含重复的数据。

声明一个set变量
set()函数可以创建一个无序不重复的元素集,这个函数至多可以传一个参数。也就是set('str')/set([list])/set((tuple))

创建一个set变量,提供一个list作为输入集合:

s = set([1, 3, 4, 2])
s   ---   {1, 2, 3, 4}

注意,传入的参数[1, 3, 4, 2]是一个list,而显示的结果是{1, 2, 3, 4},显示的顺序和list原来的顺序是不同的。

重复元素在set中自动被过滤:

s = set([1, 1, 2, 2, 3, 3])
s   ---   {1, 2, 3}

添加元素

通过add()方法可以添加元素到set中,可以重复添加,但不会有效果

# 此时s的所有元素为{1, 2, 3}
s.add(4)
s   ---   {1, 2, 3, 4}
s.add(4)
s   ---   {1, 2, 3, 4}

删除元素
通过remove()方法可以删除元素

s.remove(4)
s   ---   {1, 2, 3}

相关文章

  • 3.dict和set

    dict字典 dict全称dictionary,即字典。在其他语言中也称为map,使用键-值(key-value)...

  • python基础-dict&set

    1.字典 dict 2.访问dict 3.dict特点 4.dict更新 5.dict遍历 6.set集合 7.访...

  • mysql修改编码方式

    -- 设置character_set_server、set character_set_client和set ch...

  • ES6

    Symbol Set和Map Set Map Proxy get() set() apply() Reflect ...

  • java基础-day17-Set和String

    Set和String 1. Set接口 1.1 Set接口特征和概述 1.2 HashSet存储过程 1.2.1 ...

  • Map 、Set&Object、Array

    1. Map和Set是什么? 2. Map和Set与Object和Array有什么区别,为何引入Map和Set? ...

  • 集合(二)~Set

    一、Set集合概述和特点 1. Set集合概述和特点 java.util.Set 接口和 java.util.Li...

  • Java通配符——Set和Set区别

    写在前面 JDK5引入了新特性——Java泛型(generics),泛型提供了编译时类型安全检测机制,在程序编译期...

  • Vue.set()和this.$set()

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新...

  • Vue.set() 和this.$set()

    这两个方法其实是差不多的,可以说几乎是一样的,只不过set是绑定在Vue构造函数上,$set()是绑定在Vue原型...

网友评论

      本文标题:3.dict和set

      本文链接:https://www.haomeiwen.com/subject/nycjuftx.html