字典


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

字典的每个键值(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. Scrum立会报告+燃尽图(Final阶段第五次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2484 项目地址:https://coding.net/u/wuyy694 ...

  2. 小组冲刺第十一天站立会议(发布Alpha版+网站链接)

    注: “助成”招聘网站链接:http://58.87.74.131:8080/zhucheng 欢迎大家进行评测. 一.任务看板: 二.燃尽图: 三.团队成员合照: 四.任务总结: 今天我们发布网站B ...

  3. 每日Scrum(10)

    今天我们小组整合了下我们所编辑的程序,然后在界面上进行了修改和少部分的完善,现在就等着下午的验收了 任务展板 燃尽图如下:

  4. 提交内容到版本库:git commit

  5. HDU 3853 LOOPS 期望dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Time Limit: 15000/5000 MS (Java/Others)Me ...

  6. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

      梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent).随机梯度下降(Stochastic Gradient Descent ...

  7. HDU 2086 A1 = ?

    http://acm.hdu.edu.cn/showproblem.php?pid=2086 Problem Description 有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci ( ...

  8. delphi 删除字符串的回车、空格、Tab键

    myStr:=StringReplace(myStr, chr(13)+chr(10), '', [rfReplaceAll]);//删除回车      myStr:=StringReplace(my ...

  9. ES6 学习1

    https://www.jianshu.com/p/287e0bb867ae 1,let表示变量.const表示常量.let和const都是块级作用域.一个在函数内部,一个在代码块内部:  const ...

  10. 对HashMap的理解(一):HashMap的实现

    一.HashMap介绍 1. 定义HashMap实现了Map接口,继承AbstractMap类.其中Map接口定义了键映射到值的规则,而AbstractMap类提供 Map 接口的骨干实现,以最大限度 ...