python基础2--字典
字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(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--字典的更多相关文章
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- python基础之字典、集合
一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...
- Python基础知识---字典
现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典: key --> valu ...
- python基础5 字典
一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...
- python基础_字典_列表_元组考试_day4
1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...
- Python基础__字典、集合、运算符
之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...
- python基础类型—字典
字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...
- Python 全栈开发二 python基础 字符串 字典 集合
一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...
- python基础之字典以及增删改查
字典:字典是python中唯一的一个映射类型,主要形式为 dic = {key1:value,key2:value2,....} 字典中key的值是唯一的,主要关系到HASH算法,并且key的值必须是 ...
随机推荐
- 初步认识CNN
1.机器学习 (1)监督学习:有数据和标签 (2)非监督学习:只有数据,没有标签 (3)半监督学习:监督学习+非监督学习 (4)强化学习:从经验中总结提升 (5)遗传算法:适者生存,不适者淘汰 2.神 ...
- HDU 4514 湫湫系列故事——设计风景线 树的直径
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4514 湫湫系列故事--设计风景线 Time Limit: 5000/2000 MS (Java/Ot ...
- boolean类型的按位或||和|的区别
boolean类型既可以使用&&和||做逻辑运算,也可以使用&和|做逻辑运算,但前者是经过优化的(执行短路运算),后者未优化. 以下代码验证: 逻辑或|| public cla ...
- Scala入门系列(六):面向对象之object
object object相当于class的单个实例,类似于Java中的static,通常在里面放一些静态的field和method. 第一次调用object中的方法时,会执行object的con ...
- 【转】(C#)OPC客户端源码
本例下载/Files/badnewfish/OPC测试通过.rar 转载申明 申明:本文为转载,如需转载本文,请获取原文作者大尾巴狼啊的同意,谢谢合作! 转自:大尾巴狼啊 原文出处:http://ww ...
- HDU 2140 Michael Scofield's letter
http://acm.hdu.edu.cn/showproblem.php?pid=2140 Problem Description I believe many people are the fan ...
- input、textArea实时显示剩余可输入的字数
<h2>实时显示剩余可输入的字数(字母,数字,中文都算一个字)</h2> <h>昵称:</h> <div> <input type=& ...
- gitlab账号注册及分组
.开启注册邮箱验证 admin area -->setting-->Sign-up restrictions-->勾选Send confirmation email on sign- ...
- 把打印的内容保存成文件(PDF)
有时候网页的内容和打印的内容会有一些差异,需要把打印的内容倒出来.是有办法的. 1.以谷歌为内核的浏览器示例,按Ctrl+p快捷键打开打印对话框,如图: 2.点击更改按钮,更改打印机,会出现选择目标打 ...
- Acdream1311_Apple
无聊的时候看到上一次acdream群赛的一个题目,中间居然是有alice和bob的博弈题目,于是就去做了. 给n,m,两人轮流操作,每次操作可以使n+1,或者m+1,谁操作后满足nm>=A,那么 ...