python中字典是个很重要的功能,使用键值(key-value)存储,具有极快的查找速度。值得注意的是,字典的key要为不可变对象,比如字符串、字母,但不能是可变的,比如列表等。

1、字典的定义:

a.定义空字典:可以使用花括号或者调用dict函数来创建
>>> dic={}
>>> dic=dict()
>>> b.定义具有初始值的字典:
>>> dic={'name':'柴振华','age':23}
>>> dic={sex='man'} #这种方式更优雅一些,但是变量除外,eg: key='name' dic={key='chai'},这样他是那不到key对应的值的
>>> c.打印字典中的内容:
>>> print(dic)
{'name': '柴振华', 'age': 23}
>>> d.添加一个记录:
>>> dic['job']='student'
>>> print(dic)
{'name': '柴振华', 'age': 23, 'sex': 'man', 'job': 'student'}
>>> e.更新一条记录:
>>> dic['name']='张三' #同一个key只能对应一个值,后面的值会把前面的值覆盖掉
>>> print(dic)
{'name': '张三', 'age': 23, 'sex': 'man', 'job': 'student'}
>>> f.删除一条记录:指定确切的key删除
>>> dic.pop('sex') #删除key的同时对应的value也一起被删除
>>> print(dic)
{'name': '张三', 'age': 23, 'job': 'student'}
>>> >>> del dic['job'] #调用python的del来删除
>>> print(dic)
{'name': '张三', 'age': 23}
>>> g.随机删除一条记录:
>>> dic.popitem()
('name', '张三') #表示删除了这个k/v
>>>

2、字典的其他操作:

a、获取字典中所有的key:
>>> dic={'name' : '张三','age':23,'job':'teacther'}
>>> dic.keys()
dict_keys(['name', 'age', 'job'])
>>> b、获取字典中所有的value:
>>> dic.values()
dict_values(['张三', 23, 'teacther'])
>>> c、获取字典中所有的key和values
>>> dic.items()
dict_items([('name', '张三'), ('age', 23), ('job', 'teacther')])
>>> d、使用循环遍历读取字典:
读取所有key:
>>> for key in dic.keys():
... print(key)
...
name
age
job
>>> 读取所有value:
>>> for value in dic.values():
... print(value)
张三
23
teacther
>>> 读取所有k/v:
>>> for key,value in dic.items():
... print(key,':',value)
...
name:张三
age:23
job:teacther
>>>

3、快速创建具有初始值的字典:fromkeys()

    fromkeys()函数用于创建一个新字典,以序列seq中的元素做字典的键,value为字典所有键的初始值
语法: dict.fromkeys(seq,[,value])
>>> li=['key1','key2','key3']
>>> dic=dict.fromkeys(li,3)
>>> dic
{'key1': 3, 'key2': 3, 'key3': 3}
>>> dic=dict.fromkeys(li,[2,3,4,])
>>> dic
{'key1': [2, 3, 4], 'key2': [2, 3, 4], 'key3': [2, 3, 4]}

python基础之字典功能的更多相关文章

  1. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  2. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  3. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  4. Python基础知识---字典

    现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> valu ...

  5. python基础_字典_列表_元组考试_day4

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...

  6. python基础5 字典

    一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...

  7. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

  8. Python基础__字典、集合、运算符

    之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...

  9. python基础(字典)

    #实现同样的功能,代码越少越好#非空即真,非0即真#not 取反 a = []b = ' 'c = ()d = 0e = Noneif a: print('真的')else: print('假的') ...

随机推荐

  1. 使用Rclone和WinFsp挂载FTP为磁盘

    介绍 Rclone:是一款的命令行工具,支持在不同对象存储.网盘间同步.上传.下载数据.官网网址:rclone.org WinFsp:是一款Windows平台下的文件系统代理软件(Windows Fi ...

  2. Dart语言学习(九) 运算符

    一.运算符及其描述 二.Dart运算符注意点 1. 除法运算符"/" 和 整除运算法"~/" 的区别 除法运算符 "/"  结果是浮点型 整 ...

  3. 华硕win10U盘重装系统进入pe

    1.先要制作一个U盘的PE启动盘,建议使用WIN8 PE 2.将制作好的PE启动盘接上电脑,开机按F2键进入BIOS ,先将[Secure]菜单下[Secure Boot Control]选项设置为[ ...

  4. djgango装饰器

    from django.http import HttpResponse from django.views import View class MyView(View): def get(self, ...

  5. SVM(1)模式识别课堂笔记

    引言:当两类样本线性可分时,针对我们之前学习的感知机而言,存在多个超平面能将数据分开,这里要讨论什么样的分类面最好的问题.为此,我们形式化的定义了最优分类超平面,他有两点特征:1.能将训练样本没有错误 ...

  6. Go操作MongoDB

    mongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. mongoDB介绍 mon ...

  7. Codeforces_797

    学了一学期还是那么菜. 好久没更新,还是得放点东西的. A.贪心最小的素因子,k = 1时,直接输出n就可以了. #include<bits/stdc++.h> using namespa ...

  8. Python 进行目标检测

    一.前言 从学单片机开始鼓捣C语言,到现在为了学CV鼓捣Python,期间在CSDN.简书.博客园和github这些地方得到了很多帮助,所以也想把自己做的一些小东西分享给大家,希望能帮助到别人.记录人 ...

  9. PC微信逆向--实现消息防撤回

    自从聊天软件消息撤回功能问世后,对于撤回的消息,我们对它一直有种强烈的好奇感."Ta刚撤回了什么?是骂我的话?还是说喜欢我?还是把发给其他人的消息误发给了我?好气呀,都看不到了...&quo ...

  10. 【题解】P3373 【模板】线段树 2

    线段树解法 好丢脸,这个题做了一下午,调试了三个多小时...... 先讲讲解题思路 既然这里是线段树,就要用到lazy-tag.又有加法又有乘法的话,就要用到两个lazy-tag,分别用数组jia[] ...