Python——Dict
Python字典(Dictionary)
字典是一种可变容器模型,可存储任意类型对象。
字典的每个键值(key => value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:
d = {key1 : value1, key2 : value2 }
字典的特点:
键必须是唯一的,但值则不必唯一。
值可以取任何数据类型,但键必须是不可变的类型。
不可变类型:数字、字符串、元组;
可变类型:列表、字典。
字典中键值是无序的。
1、创建字典
方法1:
dic = {'ID':'','name':'oliver','age':
输出
{'name': 'oliver', 'age': , 'ID': ''}
方法2:
dic = dict((('ID',''),)) #括号后的逗号表示第二对括号里边是一个序列
输出:
{'ID': ''}
2、访问字典
通过key去查找。
例1:
dic = {'ID':'','name':'oliver','age':}
print(dic['name'])
输出:
oliver
例2:
dic = {'ID':'','name':'oliver','age':}
print(list(dic.keys()))
输出:
['age', 'ID', 'name']
例3:
dic = {'ID':'','name':'oliver','age':18}
print(list(dic.values()))
输出:
18, '', 'oliver']
例4:
dic = {'ID':'','name':'oliver','age':18}
print(list(dic.items()))
输出:
[('ID', ''), ('age', 18), ('name', 'oliver')]
2、更新字典
若不存在,将dic2中的键值加入dic;若存在,则更新值
dic = {'ID':'','name':'oliver','age':18}
dic2 = {'':'','':''}
dic.update(dic2)
print(dic)
输出:
{'age': 18, 'ID': '', '': '', 'name': 'oliver', '': ''}
2、删除字典
清空字典
dic = {'ID':'','name':'oliver','age':18}
print(dic.clear())
输出:
None
删除键值对
dic = {'ID':'','name':'oliver','age':18}
del dic['name']
print(dic)
输出:
{'age': 18, 'ID': ''}
删除整个字典
del dic5
print(dic5)
输出:
name 'dic5' is not defined
删除键值对,并返回该key对应的值
dic = {'ID':'','name':'oliver','age':18}
print(dic.pop('age'))
输出:
18
{'ID': '', 'name': 'oliver'}
随机删除键值对,并以元组的形式返回删除的键值对
a = dic.popitem()
print(a,dic)
输出:
('ID', '') {'age': 18, 'name': 'oliver'}
setdefault()
如果字典中存在此key,则不做修改;如果不存在,则添加键值。该方法还可以返回添加的值。
dic = {'ID':'','name':'oliver','age':18}
ret = dic.setdefault('hobby','film')
print(dic)
print(ret)
输出:
{'name': 'oliver', 'ID': '', 'hobby': 'film', 'age': 18}
film
fromkeys()
创建一个新字典。
dic6=dict.fromkeys(['host1','host2','host3'],'test')
print(dic6)
输出:
{'host2': 'test', 'host1': 'test', 'host3': 'test'}
sorted()
将字典中的键进行排序。
dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
print(sorted(dic))
输出:
[111, 121, 211, 554]
按照键对字典进行排序。
dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
print(sorted(dic.items()))
输出:
[(111, 'aa'), (121, 'asdf'), (211, 'ds'), (554, 'bb')]
has_keys()
Python 2中使用has_keys()判断指定的key在字典中是否存在。存在则返回True。
dic={5:'',2:'',4:''}
dic.has_keys(5)
Python 3中的判断方法:
print(5 in dic)
3、字典遍历
dic = {'ID':'','name':'oliver','age':18}
for i in dic:
print(i,dic[i])
输出:
name oliver
age 18
ID 123124
Python——Dict的更多相关文章
- Python dict operation introduce
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = ...
- Python dict(或对象)与json之间的互相转化
Python dict(或对象)与json之间的互相转化 原文转载自 1.JSON:JavaScript 对象表示法,是轻量级的文本数据交换格式,独立于语言,平台 2.JSON 语法规则 数据在名称/ ...
- python & dict & switch
python & dict & switch python 中是没用switch语句的,这应该是体现python大道至简的思想,python中一般多用字典来代替switch来实现. # ...
- Python dict() 函数
Python dict() 函数 Python 内置函数 描述 dict() 函数用于创建一个字典. 语法 dict 语法: class dict(**kwarg) class dict(mappi ...
- python dict乱码如何解决
定义字典并直接输出,结果输出结果中文是乱码展示 d={'name':'lily','age':18,'sex':'女','no':1121} print d 输出结果: {'age': 18, 'no ...
- 转:python dict按照value 排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...
- (翻译)如何对python dict 类型按键(keys)或值(values)排序
如何对dict类型按键(keys)排序(Python 2.4 或更高版本): mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':3} for key in ...
- python dict{}和set([])
200 ? "200px" : this.width)!important;} --> 介绍 dict(dictionary),在其他语言中也称为map,使用键-值(key- ...
- Python dict 按键和值排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1 下面的是按照value的值从大到小的顺序来排序. ...
- Python dict和set的实现原理
在python的dict中间进行查找某个key操作时,查找所需时间不会随着dict中键值对数量增多而变长,(时间复杂度为O(1))但是list中就会(时间复杂度为O(N)),这是因为list查询实现的 ...
随机推荐
- 【转】安装OS X虚拟机错误vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123
新建一个虚拟机, 选择客户机操作系统为Apple MacOS X 10.10, 其余参数可以默认. 注意建好之后不要急着打开客户机, 因为直接打开你会发现新建的客户机将会无法启动. 仔细阅读Mac O ...
- ASP.NET MVC性能优化(实际项目中)
前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...
- 20165210 Java第五次实验报告
20165210 实验五 网络编程与安全 网络编程与安全一: 实验要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ...
- Activity Process Task Application 专题讲解
Activity Process Task Application 专题讲解 Activity.和进程 为了阅读方便,将文档转成pdf http://files.cnblogs.com/franksu ...
- Android常见面试笔试题目
Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...
- 《Ubuntu入门基础》第三篇
创建虚拟磁盘
- NOIP模拟题 膜法
题目大意 给定若干组询问求$\sum\limits_{i=l}^r \dbinom{i}{k}$. 最终输出每组询问答案的乘积. 题解 首先把$l,r$分开处理相减,只需要求$\sum\limits_ ...
- HDU - 6314:Matrix (广义容斥)(占位)
Samwell Tarly is learning to draw a magical matrix to protect himself from the White Walkers. the ma ...
- bzoj 3173 最长上升子序列
Written with StackEdit. Description 给定一个序列,初始为空.现在我们将\(1\)到\(N\)的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字, ...
- leetcode_sql_3,181,182,183
181. Employees Earning More Than Their Managers The Employee table holds all employees including the ...