字典,{key,value}

help(dict)

  • 定义一个字典:
>>> dict1
{'salary': '', 'age': '', 'name': 'yzw'}
>>> dict2=dict1
>>> id(dict2)
139948810542280
>>> id(dict1)
139948810542280
>>> dict2=dict1.copy()
>>> id(dict1),id(dict2)
(139948810542280, 139948887698696)
  • |  clear(...)  清空一个字典
     |      D.clear() -> None.  Remove all items from D.

    >>> dict2.clear()
    >>> dict2
    {}
  • |  copy(...)  普通赋值指向相同的内存地址
     |      D.copy() -> a shallow copy of D
    >>> dict2=dict1.copy()
    >>> id(dict1),id(dict2)
    (139948810542280, 139948887698696)
  • |  fromkeys(iterable, value=None, /) from builtins.type  创建一个以序列为key,值相同的字典
     |      Returns a new dict with keys from iterable and values equal to value.

    >>> seq1=('length','width','square')
    >>> dict3=dict.fromkeys(seq1)
    >>> dict3
    {'length': None, 'width': None, 'square': None}
    >>> dict4=dict.fromkeys(seq1,10)
    >>> dict4
    {'length': 10, 'width': 10, 'square': 10}
  • |  get(...)  根据key取value,key不存在则返回None   dict[key]取值key不存在时报错
     |      D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
    >>> dict1
    {'salary': '', 'age': '', 'name': 'yzw'}
    >>> dict1.get('salary')
    ''
    >>> dict1.get('sex')
    >>> dict1['salary']
    '100'
    >>> dict1['sex']
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'sex'
  • |  items(...)  以列表返回可遍历的(键, 值) 元组数组
     |      D.items() -> a set-like object providing a view on D's items
    >>> dict1.items()
    dict_items([('salary', ''), ('age', ''), ('name', 'yzw')]) 
  • |  keys(...)  返回所有key的列表
     |      D.keys() -> a set-like object providing a view on D's keys
    >>> dict1.keys()
    dict_keys(['salary', 'age', 'name'])   
  • |  pop(...)  删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |      If key is not found, d is returned if given, otherwise KeyError is raised
    >>> dict1.pop('salary')
    ''
    >>> dict1
    {'age': '', 'name': 'yzw'}
    >>> dict1.pop('sex')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'sex'
    >>> dict1['sex']='man'
    >>> dict1
    {'sex': 'man', 'age': '18', 'name': 'yzw'}
  • |  popitem(...) 随机删除一个k/v
     |      D.popitem() -> (k, v), remove and return some (key, value) pair as a
     |      2-tuple; but raise KeyError if D is empty.
    >>> dict1
    {'square': None, 'kind': 'human', 'width': None, 'name': 'yzw', 'length': None, 'sex': 'man', 'age': ''}
    >>> dict1.popitem()
    ('square', None)
    >>> dict1.popitem()
    ('kind', 'human')
    >>> dict1
    {'width': None, 'name': 'yzw', 'length': None, 'sex': 'man', 'age': ''}
  • |  setdefault(...)  不存在key,则增加到字典中,若存在,则返回key对应的value
     |      D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
    >>> dict1.setdefault('kind','human')
    'human'
    >>> dict1
    {'kind': 'human', 'sex': 'man', 'age': '', 'name': 'yzw'}
    >>> dict1.setdefault('sex','femeal')
    'man'
    >>> dict1
    {'kind': 'human', 'sex': 'man', 'age': '18', 'name': 'yzw'}
  • |  update(...)  字典合并,不能存在的k/v则增加,已存在的k则覆盖更新
     |      D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
     |      If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
     |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
     |      In either case, this is followed by: for k in F:  D[k] = F[k]
    >>> dict1
    {'kind': 'human', 'sex': 'man', 'age': '', 'name': 'yzw'}
    >>> dict3
    {'length': None, 'width': None, 'square': None}
    >>> dict3['kind']='human'
    >>> dict3
    {'kind': 'human', 'length': None, 'width': None, 'square': None}
    >>> dict1.update(dict3)
    >>> dict1
    {'square': None, 'kind': 'human', 'width': None, 'name': 'yzw', 'length': None, 'sex': 'man', 'age': ''}
    >>>
  • |  values(...)  返回字典所有值的列表形式
     |      D.values() -> an object providing a view on D's values
    >>> dict1.values()
    dict_values([None, 'human', None, 'yzw', None, 'man', ''])
  • 字典遍历

    >>> dict1
    {'width': None, 'name': 'yzw', 'length': None, 'sex': 'man', 'age': ''}
    >>> for i in dict1:
    ... print(i,dict1[i])
    ...
    width None
    name yzw
    length None
    sex man
    age 18
    # 效率最高
    >>> for k,v in dict1.items():
    ... print(k,v)
    ...
    width None
    name yzw
    length None
    sex man
    age 18
    #效率低
    >>> for k,v in enumerate(dict1):
    ... print(k,v)
    ...
    0 width
    1 name
    2 length
    3 sex
    4 age
    >>> for idx,k in enumerate(dict1):
    ...     print(idx,k,dict1[k])
    ...
    0 width None
    1 name yzw
    2 length None
    3 sex man
    4 age 18

python3.x 基础一:dict字典的更多相关文章

  1. python基础(六)dict字典和文件操作open

    字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...

  2. python基础数据类型--dict 字典

    字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...

  3. Python - 基础数据类型 dict 字典

    字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...

  4. Python基础数据类型(五) dict字典

    字典dict{} 字典数字自动排序 enumerate 枚举 for i,k in enumerate(dic,1) #第二个参数默认不写就是0 ---枚举 print(i,k) dict,以{}来表 ...

  5. Python3中dict字典的相关操作函数

    字典对象的内建函数 1. clear() 清空字典. 例: >>> a = {1:3, 2:4} >>> a.clear() >>> a {} 2 ...

  6. python的dict()字典数据类型的方法详解以及案例使用

    一.之前的回顾 # int  数字 # str 字符串 # list 列表 # tuple 元组 # dict 字典 字典中最重要的方法 keys() values() items() get upd ...

  7. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  8. python基础之dict、set及字符

    python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...

  9. python基础——使用dict和set

    python基础——使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其它语言中也称为map(映射),使用键-值(key-value)存储,具 ...

  10. 第四篇:python基础之dict、set及字符

    python基础之dict.set及字符   python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射 ...

随机推荐

  1. 2019-2020-1 20199329《Linux内核原理与分析》第十三周作业

    <Linux内核原理与分析>第十三周作业 一.本周内容概述 通过重现缓冲区溢出攻击来理解漏洞 二.本周学习内容 1.实验简介 注意:实验中命令在 xfce 终端中输入,前面有 $ 的内容为 ...

  2. JDK 14的新特性:instanceof模式匹配

    JDK 14的新特性:instanceof模式匹配 JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks ...

  3. Gym 101194F Mr. Panda and Fantastic Beasts

    #include<bits/stdc++.h> using namespace std; #define ms(arr,a) memset(arr,a,sizeof arr) #defin ...

  4. Aurora: 来自 Amazon 的高性能的企业级关系数据库,兼容 MySQL

    近日,在美国召开的AWS re:Invent云计算大会上,Amazon高级副总裁安迪·杰西发布了企业级关系数据库Aurora.Aurora是一个面向Amazon RDS(关系数据库服务).兼容MySQ ...

  5. Mark一篇介绍Java垃圾回收和JVM参数设置的文章

    贴出原文连接:重磅!Java 内存管理白皮书,读完它,java 内存管理的问题完全 NO Problem! 读了一遍,对并行的垃圾回收还不是很理解,先mark,消化消化再学习. 文章说的一些JVM设置 ...

  6. OpenStack 删除instance 和其附加的volumes

    在openstack里面有时候删除instance时,volume无法跟着删除,可以自己编写脚本来实现, 脚本代码如下: #!/bin/bash for i in $(cat /root/host-d ...

  7. PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…

    PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...

  8. Win10美吱er吱er,Win10修改默认字体的方法

    请参考以下步骤(需要修改注册表,修改前请先备份,以便在出现问题时能够及时恢复): 例:将系统字体改为宋体 1.Windows+r,输入:regedit 2.定位以下路径:HKEY_LOCAL_MACH ...

  9. 题解 CF160B 【Unlucky Ticket】

    本文为UserUnknown原创 思路 这道题应该怎么做? 可以把输入的数字逐位拆分后存入数组,就像这样存进去: int a[N],b[N] tmp=n; k=1; while(--tmp){ a[k ...

  10. CentOS安装boost

    安装其实很简单的: tar zxvf boost_1_59_0.tar.gz cd boost_1_59_0 ./bootstrap.sh --prefix=/usr/local/boost ./b2 ...