基础数据类型之字典

ps:数据类型划分:可变数据类型和不可变数据类型。

不可变数据类型:元组(tupe)、布尔值(bool)、整数型(int)、字符串(str)。不可变数据类型也称为可哈希。

可变数据类型:列表(list)、字典(dict)、集合(set)。可变数据类型也称为不可哈希。

字典

  字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

  字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典的增删改查:

增:

dic1 = {'age':,'name':'jin','sex':'male'}
dic1['high'] =

直接增加,原字典中没有时直接添加到原字典的后面。

dic1 = {'age':,'name':'jin','sex':'male'}
dic1['age'] =

如果增加的内容在原来的字典中有这对键值,那么会对原来的键值进行修改。

dic1 = {'age':,'name':'jin','sex':'male'}
dic1.setdefault('weight')

dic1.setdefault('')        在字典中添加键值对,如果只有键那对应的值是none

dic1['high'] =
dic1.setdefault('weight',)
dic1.setdefault('name','二哥')

dic1.setdefault('')     如果原字典中存在设置的键值对,则他不会更改或者覆盖。

删除

dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值,可以有返回值print(dic_pop)
print(dic)
print(dic_pop)
del dic["name"] # 没有返回值。
print(dic) dic_pop1 = dic.popitem() # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
print(dic_pop1) # ('name','jin') dic_clear = dic.clear() # 清空字典
print(dic,dic_clear) # {} None 字典的删

例如:

dic1 = {'age':,'name':'jin','sex':'male'}
dic1.pop('age')
print(dic1.pop('二哥',None))
print(dic1)
dic1.popitem()
print(dic1.popitem())
print(dic1)
del dic1['name']
print(dic1)
del dic1
print(dic1)
dic1.clear()
print(dic1)

修改:

dic1 = {'age':,'name':'jin','sex':'male'}
dic1['age'] =
print(dic1) dic={'name':'jinxin','age':,'sex':'male'}
dic2={'name':'alex','weight':}
dic2.update(dic) 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
print(dic2)
print(dic)
dic1 = {'age':,'name':'jin','sex':'male'}

查:

dic1 = {'age':,'name':'jin','sex':'male'}
print(dic1.keys(),type(dic1.keys())) #没有会报错
print(dic1.values()) #没有会报错
print(dic1.items()) #没有会报错
v2 = dic1['ame'] 不是在里面的键会报错
print(v2)
print(dic1.get('name'))
print(dic1.get('nme','没有这个'))
for i in dic1 :
print(i)
for i in dic1.keys() :
print(i)
for i in dic1.values() :
print(i)
for k,v in dic1.items() :
print(k,v)
v1 = dic1['age']
print(v1)

for循环输出字典里的键值对

其他操作:

dic = {"name":"jin","age":,"sex":"male"}
for key in dic:
print(key)
for item in dic.items():
print(item)
for key,value in dic.items():
print(key,value)  

Python基础数据类型之字典的更多相关文章

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

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

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

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

  3. python基础数据类型之字典的操作

    一. 字典的简单介绍字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key- ...

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

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

  5. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  6. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  7. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

  8. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  9. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

随机推荐

  1. Linux中安装字体

    Linux中安装字体 查看系统中的字体 fc-list 查看系统中的中文字体 fc-list :lang=zh将然后将字体文件拷贝到/usr/share/fonts/中 cp aa.ttl /usr/ ...

  2. vue实现懒加载的几种方法

    vue实现惰性加载是基于: 1.ES6的异步机制 components: { comp: (resolve, reject) => {} } 2. webpack的代码分割功能 require. ...

  3. 【Python】 汉字转化汉语拼音pinyin

    pinyin pinyin模块是github上一个小项目,在github.com/cleverdeng/pinyin.py上面可以下到源码.衷心感谢那些为这个模块做出贡献的人来方便我们[鞠躬] 安装: ...

  4. redis备份与恢复

    1.redis的备份 redis需要远程访问 添加密码进行登录,修改主配置文件添加:requirepass xxx redis-cli -h 127.0.0.1 -p 6379 -a 123456 b ...

  5. c++ --> #define中的三个特殊符号:#,##,#@

    #define中的三个特殊符号:#,##,#@ 看下面三个define宏定义: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToStrin ...

  6. 关于BufferedReader的readLine方法遇到的坑

    今天偶然用到BufferedReader,在读取文本后输出数据的时候遇到了隔行输出的问题. 如: 床前明月光 疑是地上霜 123456 789789 输出的为:疑是地上霜789789 找了一下,最终找 ...

  7. [poj1068]Parencodings_模拟

    Parencodings 题目大意:给你一个P序列,表示从左到右的右括号左边有多少左括号,求M序列. 注释:M序列定义为每一个右括号左边最近的没有被之前的右括号匹配的括号之间,有多少已经匹配的括号队对 ...

  8. [poj1185]炮兵阵地_状压dp

    炮兵阵地 poj-1185 题目大意:给出n列m行,在其中添加炮兵,问最多能加的炮兵数. 注释:n<=100,m<=10.然后只能在平原的地方建立炮兵. 想法:第2到状压dp,++.这题显 ...

  9. 升级 mysql5.6 配置文件my.cnf sql_mode 解析与设置问题

    sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入.在生产环境必须将这个值设置为严格模式,所以开发.测试环境的数据库也必须要设置,这 ...

  10. 基于FPGA的Cordic算法实现

    CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数.双曲线.指数.对数的 ...