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的值必须是 ...
随机推荐
- webpack入门指南-step02
webpack 安装 1)安装前的准备:webpack是基于node环境的项目,所以使用前必须先安装node和npm. 在安装 Webpack 前,你本地环境需要支持 node.js.如果电脑没有装过 ...
- Leetcode题库——6.Z字形变换
@author: ZZQ @software: PyCharm @file: convert.py @time: 2018/9/20 20:12 要求: Z字形变换 将字符串 "PAYPAL ...
- 关于JoptionPane提示框
import java.util.*; import javax.swing.JOptionPane; import javax.swing.UIManager; public class Main ...
- 2017 Summary
几门课 基础电路与电子学 知道了一些二极管三极管的基本基本很基本的那种物理知识吧,但是毕竟我是从电信转专业过来的,所以说我内心就是逃避模电这样的课的.上课基本没听,后面只是死命复习了一周,考的还可以. ...
- Monty Hall 问题与贝叶斯定理的理解
三门问题(Monty Hall problem),是一个源自博弈论的数学游戏问题,大致出自美国的电视游戏节目Let's Make a Deal.问题的名字来自该节目的主持人蒙提·霍尔(Monty H ...
- win32.gui.api.con(前置,鼠标点击,发送数据的Dome)
# -*- coding: UTF-8 -*- import win32gui, win32con import os import time import win32gui import win32 ...
- 使用JavascriptExecutor改变页面元素
如下如html的页面代码 <html> <body> <input type="text" name="text" value=& ...
- CSS 报错
- Git Github使用错误汇总
Git使用常见错误 error:failed to push some refs to 'xxx' 本地仓库没有Readme文件,先PULL下远程仓库 git pull --rebase origin ...
- vue & button & refs & click & bug
vue & button & refs & click & bug $refs.btn.click() ??? vue & refs $refs.btn.$em ...