字典


字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

语法:

 goods = {
'apple':4.5,
'orange':2.3,
'banana':3.5
}

字典的特性:

  • dict是无序的
  • key必须是唯一的

1.增加元素

 >>> goods
{'apple': 4.5, 'banana': 3.5, 'orange': 2.3}
>>> goods['peach']=5.0
>>> goods
{'apple': 4.5, 'banana': 3.5, 'orange': 2.3, 'peach': 5.0}

2.修改

 >>> goods['apple']=5.5  # 将苹果的价格改为 5.5
>>> goods
{'apple': 5.5, 'banana': 3.5, 'orange': 2.3, 'peach': 5.0}

3.删除元素

 >>> goods
{'apple': 5.5, 'banana': 3.5, 'orange': 2.3, 'peach': 5.0}
>>> goods.pop('peach') #删除peach,并返回value的值
5.0
>>> goods
{'apple': 5.5, 'banana': 3.5, 'orange': 2.3} >>> del goods['banana'] # 指定 key的删除
>>> goods
{'apple': 5.5, 'orange': 2.3} >>> goods
{'apple': 5.5, 'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}
>>> goods.popitem() # 随机删除
('apple', 5.5)
>>> goods
{'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}

4.查找

 >>> goods
{'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}]
# key的值在字典中存在
>>> 'grape' in goods
True
# key存在就返回 value , 不存在就返回 None
>>> goods.get('orange') # 知道key,获取 value
2.3
>>> goods['watermelon']
12.0
>>> goods['apple'] # 如果一个key不存在,就会报错,get不会,不存在只会返回None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'apple'

5.多级字典及操作

 area = {'浙江':
{
'杭州':['西湖区','下城区','萧山区'],
'嘉兴':['南湖区','秀洲区','平湖市'],
'温州':['九湾区','鹿城区','洞头区']
},
'江苏':
{
'南京':['鼓楼区','玄武区','秦淮区'],
'苏州':['姑苏区','吴中区','虎丘区'],
'常州':['武进区','金坛市','溧阳市']
} } >>> area['浙江']['杭州']
['西湖区', '下城区', '萧山区'] >>> area['浙江']['杭州'][1] += ',很大'
>>> area['浙江']['杭州']
['西湖区', '下城区,很大', '萧山区']

6.其他用法

 >>> area.keys()
dict_keys(['浙江', '江苏']) # 返回字典中的所有keys,生成一个列表
>>> goods.values()
dict_values([6.0, 2.3, 12.0]) #返回字典中的所有values,生成一个列表
>>> goods.keys()
dict_keys(['grape', 'orange', 'watermelon']) {'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}
>>> b = {1:2,3:4,'grape':4.5}
# update()是把两个字典合并成一个新字典,中间有交叉的key,更新替换成新值,没有交叉就直接创建
>>> goods.update(b)
>>> goods
{1: 2, 3: 4, 'grape': 4.5, 'orange': 2.3, 'watermelon': 12.0} >>> goods.items()
dict_items([(1, 2), (3, 4), ('grape', 4.5), ('orange', 2.3), ('watermelon', 12.0)])

7.setdefault(k,v)

不存在的key 就添加,存在就返回原值

fruits = {"apple":5.6,
"banana":4.5,
"peal":6.5,
"orange":4.3} #设置不存在的key,则添加新值
fruits.setdefault("watermelon",8.8)
print(fruits) #输出
{'banana': 4.5, 'orange': 4.3, 'apple': 5.6, 'peal': 6.5, 'watermelon': 8.8}
#设置存在的值,则 value还是原值
fruits.setdefault("apple",3.6)
print(fruits["apple"]) #输出
5.6

8.itmes()

把字典转换成列表 

fruits = {"apple":5.6,
"banana":4.5,
"peal":6.5,
"orange":4.3} print(fruits.items()) #输出
dict_items([('peal', 6.5), ('apple', 5.6), ('orange', 4.3), ('banana', 4.5)])

  

9.遍历字典

 for key in goods:
print(key,goods[key])
#或
for k,v in goods.items():
print(k,v)

python基础2--字典的更多相关文章

  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基础5 字典

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

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

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

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

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

  8. python基础类型—字典

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

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

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

  10. python基础之字典以及增删改查

    字典:字典是python中唯一的一个映射类型,主要形式为 dic = {key1:value,key2:value2,....} 字典中key的值是唯一的,主要关系到HASH算法,并且key的值必须是 ...

随机推荐

  1. Scurm Meeting 11.2

    成员 今日任务 明日计划 用时 徐越 写功能规格说明书,代码移植 创建数据库,代码移植 3h 赵庶宏 编写功能规格说明书,学习访问数据库代码,代码迁移 代码迁移 5h 武鑫 设计界面:独立完成一些简单 ...

  2. myeclipse 导入 import maven web project

    用google才收到了这个.. http://stackoverflow.com/questions/12197662/maven-java-web-project-not-recognised-wh ...

  3. C#简单窗体应用程序(二)

    使用C#创建控制台应用程序的基本步骤: (1)创建项目: (2)用户界面设计: (3)属性设置: (4)编写程序代码: (5)保存.调试.运行: 例题:设计登录界面,效果如下: 第一步:创建项目: 文 ...

  4. 车牌识别算法库EasyPR的使用

    主要参考以下两个博客: http://blog.csdn.net/junmuzi/article/details/49888123 http://blog.csdn.net/Lucas66666/ar ...

  5. AT89C51的内部4K flash,

    AT89C51的内部4K flash, 是用来下载程序代码的,程序运行时只能做读取数据操作,不能写入.单片机断电时需要候保存数据,可以选择 带EEPROM的单片机 就可以,如STC 系列的单片机有内部 ...

  6. React鼠标事件

    说明:假设有一个用户名片,当鼠标滑到上面,显示用户详细信息,且用户详情卡片位置随鼠标位置改变而改变. UI框架:Material-ui 实现思路: 1.一个用户简介组件A(用于展示用户列表): 2.一 ...

  7. .NET WinForm下StatusStrip控件如何设置分隔线及部分子控件右对齐

    ssInfo.LayoutStyle = ToolStripLayoutStyle.StackWithOverflow;//StatusStrip 控件 tsslUpdate.Alignment = ...

  8. 微信小程序入门一: 简易form、本地存储

    实例内容 登陆界面 处理登陆表单数据 处理登陆表单数据(异步) 清除本地数据 实例一: 登陆界面 在app.json中添加登陆页面pages/login/login,并设置为入口. 保存后,自动生成相 ...

  9. php in_array()优化

    开年首篇文章,后天上班了,正在调整状态.年前室友问我一段程序效率问题,刚好来研究下!该函数是关于判断域名字符串是否是单拼域名.双拼域名.三拼域名...多拼域名问题: //原始程序function pi ...

  10. c++ 替换修改一个文件夹下的所有文件的文件名

    代码简洁,亲测可用. 1,首先来获取(输出)一个文件夹中所有的文件名 void getFiles(string path, vector<string>& files) { //文 ...