0
点赞
收藏
分享

微信扫一扫

(P25-P26)字典:映射与序列,字典的内置方法


文章目录

  • ​​1.映射与序列​​
  • ​​2.字典的内置方法​​

1.映射与序列

  • 字典是映射类型
    字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系

  • 字符串,列表,元组都是序列类型
  • eg:如果是序列,也可以实现类似字典功能,但是很麻烦
  • (P25-P26)字典:映射与序列,字典的内置方法_浅拷贝_02

  • eg:直接使用字典,'李宁’称之为key,'一切皆有可能’称之为value,‘李宁’:‘一切皆有可能’称之为项
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_03

  • 创建字典的方式
    创建空字典,help(dict)可以查询字典用法
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_04

  • 只要构建一种映射关系就行,这里面使用元组(list也行)构造一种映射关系,除了key:value,还可以用key=value的关键字方式创建字典
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_05

  • 用索引key赋值
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_06

2.字典的内置方法

  • dict()是一个工厂函数,调用后会生成该类型的实例

>>> a = dict()
>>> type(a)
<class 'dict'>

  • fromkeys(…)
    dict. fromkeys(S[,v])
    fromkey()方法用于创建并返回一个新的字典。它有两个参数,第一个参数是字典的键;第二个参数是可选的,是传入键的值。如果不提供,默认是None

>>> dict1 = {}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict2 = {}
>>> dict2.fromkeys((1,2,3),"Number")
{1: 'Number', 2: 'Number', 3: 'Number'}
>>> dict3 = {}
>>> dict3.fromkeys((1,2,3),('one','two','three'))
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
若想要修改key=1,3的值,下面的做法是有问题的,会重新创建一个字典出来
dict1.fromkeys((1,3),'数字')
{1:'数字',3:'数字'}

  • 访问字典的方法有key()、values()和items()
    key()用于返回字典中的键,value()用于返回字典中所有的值,item()当然就是返回字典中所有的键值对(也就是项)
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_07


  • (P25-P26)字典:映射与序列,字典的内置方法_浅拷贝_08

    (P25-P26)字典:映射与序列,字典的内置方法_赋值_09

  • dict1.get() 对应键的值不存在的话返回一个None,这样程序就不会报错
    None只是表示对象,什么都没有的对象
    dict1.get()比dict1[32]强势的地方
  • (P25-P26)字典:映射与序列,字典的内置方法_赋值_10

  • 找不到值的时候,还可以返回一个具体的值
  • (P25-P26)字典:映射与序列,字典的内置方法_赋值_11

  • 如果不知道一个键是否在字典中,可以使用成员资格操作符(in 或 not in)来判断。然而在序列中,查找的是元素的值,而不是索引号,字典查找的是key。
  • (P25-P26)字典:映射与序列,字典的内置方法_赋值_12

  • clear()可清空一个字典
    注意不好的清空方式
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_13

  • dict1.copy():浅拷贝
    id可以返回对象的地址
    深拷贝前后对象的地址是不一样的,赋值前后对象的地址是一样的(浅拷贝)。eg潜拷贝若增加字典c中的项,可以影响到a
  • (P25-P26)字典:映射与序列,字典的内置方法_映射关系_14

  • pop()是给定键弹出对应的值,popitem()是随机弹出一个项,因为字典是没有顺序的
  • (P25-P26)字典:映射与序列,字典的内置方法_赋值_15

  • dict1.setdefault():找不到给定键对应的值话会自动在字典中创建一个基于该键的项
    (区别于dict1.get()的结果)
  • (P25-P26)字典:映射与序列,字典的内置方法_浅拷贝_16

  • dict1.update():根据一个字典或映射关系去更新另一个字典
  • (P25-P26)字典:映射与序列,字典的内置方法_浅拷贝_17

  • 参考:小甲鱼零基础入门学习python笔记,​​第二十五课:字典:当索引不好用时​​,​​第二十六课:字典:各种内置方法​​


举报

相关推荐

0 条评论