专栏首页柠檬先生Python 基础 Dict 和 Set 类型

Python 基础 Dict 和 Set 类型

python 什么是dict

  例如:

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

    我们把名称称为key,对应的成绩称为value,dic就是通过key 来查找value.

    花括号{} 表示这是一个dict,然后按照key:value,写出即可,最后一个

      key:value 的逗号可以省略。len() 函数可以计算出任何集合的大小

        len(d) 43

python 访问dict

  可以简单使用d[key] 的形式来查找对应的value,这和list 很像,不同之处是,list

  必须要使用索引返回对应的元素,而dict 使用key.

    例如: print d['Adam']

        95

  通过key 访问dict 的value, 只要key 存在,dic 就返回对应的value.

  如果key 不存在,会直接报错: KeyError

    if 'Paul' in d:

       print d['Paul']

  使用dict 本身提供的一个get 方法,在key 不存在的时候,返回None

    print d.get('Bart')

      59

python dict的特点

  dict 的第一个特点就是查找速度快,无论dict有10 个元素还是10 万元素,查找速度

  都是一样,而list 的查找速度会随着元素的增加而逐渐下降。

  dict 的缺点是占用内存大,还会浪费很多内容,list 正好相反。

  dict 是按 key 查找,所以,在dict 中,key 不能重复。

  dict 的第二个缺点就是存储的key-value序对是没有顺序的。

  d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

    print d

      {'Lisa': 85, 'Adam': 95, 'Bart': 59} 打印的顺序不是我们创建的的顺序,

    不同的机器打印的顺序不同。

  dict 的第三个特点是作为key 的元素必须不可变,

python 更新dict

    dict 是可变的,也就是说,我们可以随时往dict 中添加新的key-value

      比如已有dict

        d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

          要把新同学的成绩 72 加进去,用赋值语句。

        d['Paul'] = 72

        如果key 已经存在,则赋值会用新的value 替换掉原来的value。

python 遍历dict

    由于dict 也是一个集合,所以,遍历dict 和遍历list 类似,都可以通过for 循环实现。

    直接使用for 循环可以遍历dict 的key

      d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

        for key in d:

          print key

        Lisa Adam Bart

    由于通过key 可以获取对应的value,因此,在循环体内,可以货到value 的值。

python 什么是set

    set 持有一系列元素,这一点和list 很像,但是set 的元素没有重复,而是无序的。

    创建set 的方式是调用set() 并传入list,list的元素作为set 的元素

    s = set(['A','B','C'])

    因为set 不能包含重复的元素,所以,当我们出入包含重复的远大的list 的时候

    set会自动去掉重复的元素。

python 访问set

    由于set 存储的是无序的集合,所以我们没有办法通过索引来访问。

    访问set 中的某个元素实际上就是判断一个元素是否在set 中

      例如:

        s = set(['Adam', 'Lisa', 'Bart', 'Paul'])

        'Bart' in s

        True

python set的特点

    set 的内部结构和 dict 很像,唯一的区别就是不存储value,因此判断

      一个元素是否在set中速度很快。

      任何可变对象不能放入set中。

    set 存储的元素是没有顺序的。

      星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。

        weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])

        再判断输入是否有效,只需要判断该字符串是否在set中:

        x = '???' # 用户输入的字符串 if x in weekdays: print 'input ok' else: print 'input error'

python 遍历set

    由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。

    直接使用 for 循环可以遍历 set 的元素:

      s = set(['Adam', 'Lisa', 'Bart'])

        for name in s:

          print name

        Lisa Adam Bart

python 更新set

    由于set 存储的是一组不重复的无序元素,因此,更新set 主要做两件事。

    一是把新的元素添加到set中,而是把已有的元素从set 中删除。

    添加元素时,用set 的add() 方法。

    s = set([1, 2, 3])

      s.add(4)

      print s

      set([1, 2, 3, 4])

    添加已经存在的元素不会报错,但是不能添加进去。

    删除set中的元素时,用set的remove()方法:

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

      s.remove(4)

      print s

      set([1, 2, 3])

    如果删除的元素不存在set中,remove()会报错

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python-Dict&Set类型

    'Adam' ==> 95 'Lisa' ==> 85 'Bart' ==> 59

    py3study
  • Python 基础语法六-dict 和 set

    字典(dictionary),其他开发语言中也有称为 map 的,使用键值对(key-value)方式存储数据,具有很快的查找速度。

    keinYe
  • Python基本数据类型-list-tuple-dict-set

    输出结果:0 1 2 3 4 5 6 7 [0, 1, 3, 4, 5, 6, 7]

    职场亮哥
  • python基础—dict

    d = dict(((1,‘a’),(2,‘b’))) d {1: ‘a’, 2: ‘b’}

    dogfei
  • Python中set 和dict 的总结

    add (elem)   在集合中增加一个元素,如果元素存在,什么都都不做,时间复杂度O(1)

    py3study
  • Python 数据类型

    Python主要数据类型包括list(列表)、tuple(元组)、dict(字典)和set(集合)等对象,下面逐一介绍这些Python数据类型。

    用户2793313
  • 小白如何入门Python?记我的Python初体验

    早已久仰 Python 大名 , 当下 Python 特别火爆 ,作为小白的我也想尝尝鲜,毕竟社会在发展,咱也要与时俱进呀 !

    AXYZdong
  • Python基础 List和Tuple类型

    python 创建list     python 内置一种数据类型是列表: 列表是一种有序的集合,可以随时添加和     删除其中的元素,list 中的元素是按...

    用户1197315
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    程序员宝库
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    小莹莹
  • Python基础——字典(dict)

    用字典2中的值更新字典1中的值。字典2中与字典1中的键相同,则该键的值更新为字典2的,若字典2中的键字典1中并没有,那就添加该键值对。字典2不改变。

    py3study
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    牧云云
  • Python-学习计划

    py3study
  • Python基础笔记

    Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。 计...

    他叫自己MR.张
  • Python入门基础连载(2)数据结构

    Python数据结构包括了列表(list),元组(tuple),字典(dict)和集合(set),这些也都可以称之为容器,下面Cooldog就和大家一起学习一下...

    企鹅号小编
  • Python自学之路-list、tuple、dict和set

    上一篇「Python自学之路-数据类型和变量」主要简单说明了下数据类型和变量,这一篇主要和大家介绍下list、tuple、dict和set。相信后期在实战中会经...

    Bug生活2048
  • Python 内置类型 dict, li

    近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑变量的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python ...

    py3study
  • 简析前端学习python3的基础

    ps: python的声明的数组其实很JavaScript声明是一样的,只是没有声明类型

    py3study
  • 【Python面试】 说说Python中有几种数据类型?​

    小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

    程序IT圈

扫码关注云+社区

领取腾讯云代金券