python语言中的数据类型之字典
数据类型
字典类型dict
用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性
定义方式:在{ }用逗号分隔开多个元素,每个元素都是key:value形式,其中key是不可变类型,通常是字符串类型,而value是任意类型。
类型转换:
d=dict(x=1,y=2,z=3)
print(d)
print(type(d))
#第一种类型转换
items=[('name','egon'),('age',18),('gender','male')]
d={}
for item in items:
d[item[0]]=item[1]
print(d)
#列表转换成字典 第二种
items=[('name','egon'),('age',18),('gender','male')]
d=dict(items)
print(d)
#第三种方法
# 了解
keys=['name','age','gender','height','weight']
# d={}
# for key in keys:
# d[key]=None
d={}.fromkeys(keys,None)
print(d,type(d))
常用操作+内置方法
1.按key存取值:可存可取
dic={'name':'egon','age':18}
print(dic['name'])
#这是按key 取 value值 如果key错误程序会报错
dic['name']='EGON'
print(dic)
#按key存值 根据key存入'EGON' (value)
dic['gender']='male'
print(dic)
#如果存入的key在字典中没有就会添加新的key:value
###在列表中如果索引没有添加的话会报错
l=['a','b','c']
l[0]='A'
print(l)
l[4]='AAA'
print(l)
2.长度 len
dic={'name':'egon','age':18}
print(dic)
print(len(dic))
3.成员运算 in 和 not in
字典的成员运算是以字典的key为准的,如果找不到key则会显示False
dic={'name':'egon','age':18}
print('name'in dic) # True
print('egon'in dic) # False
4.删除 del/pop/
dic={'name':'egon','age':18}
del dic['name']
print(dic)
#del 的运用
dic={'name':'egon','age':18}
res=dic.pop('name')
print(dic)
print(res)
#pop pop的返回值是与之对应的value值
ic={'name':'egon','age':18}
res=dic.popitem()
print(res)
print(type(res))
print(dic)
('age', 18)
<class 'tuple'>
{'name': 'egon'}
#popitem() 删除字典中的元组
5.键keys( ),值values(),键值对items()
在python2中对应的键keys(),values(),items()
#在python2中keys(),values(),items()会将全部对应值输出
>>> dic={'name':'egon','age':18}
>>> dic.keys()
['age', 'name']
>>> dic.values()
[18, 'egon']
>>> dic.items()
[('age', 18), ('name', 'egon')]
>>>
#在python3中
>>> dic={'name':'egon','age':18}
>>> dic.keys()
dict_keys(['name', 'age'])
>>> dic.values()
dict_values(['egon', 18])
>>> dic.items()
dict_items([('name', 'egon'), ('age', 18)])
6.循环
dic={'name':'egon','age':18}
for k in dic:
print(k)
#在字典中不加任何操作循环是循环key
dic={'name':'egon','age':18}
for k in dic.keys(): #循环keys
print(k)
for v in dic.values(): #循环values
print(v)
for k,v in dic.items(): #k,v=('name', 'egon')
print(k,v) #循环key:value
需要掌握的操作
7.update 更新
dic={'name':'egon','age':18}
dic.update({'height':175,'weight':180})
print(dic)
{'name': 'egon', 'age': 18, 'height': 175, 'weight': 180}
#语法 字典1.update(字典2)
#会将两个字典中相同的key:value保留,不同的添加到字典1
dic={'name':'egon','age':18}
8.setdefault
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
#当key存在时,不改原值,返回原值
dic={'name':'egon','age':18}
res=dic.setdefault('name','EGON')
print(dic)
print(res)
{'name': 'egon', 'age': 18}
egon
#当key不存在时,增加新值
dic={'name':'egon','age':18}
res=dic.setdefault('gender','male')
print(dic)
print(res)
{'name': 'egon', 'age': 18, 'gender': 'male'}
male
###字典无序 可变
python语言中的数据类型之字典的更多相关文章
- python语言中的数据类型
一.内存管理 1.python解释器的垃圾回收机制 垃圾:当一个值上没有人绑定任何变量名时(当引用计数为0),该值就是一个垃圾. python解释器运行时会检测值的引用计数,当引用计数=0该值会被清除 ...
- python语言中的数据类型之集合
数据类型 集合类型 set 用途:1.关系运算 2.去重 定义方式:在{}内用逗号分隔开多个元素,但元素的特点是 1.集合内元素必须是不可变类型 2.集合内元素无序 集合内元素不能 ...
- python语言中的数据类型之元组
数据类型 元组 tuple 元组:不可变类型 用途:元组就是一个不可变的列表,当需要存不改动的值时可用元组 定义方式:在()内用逗号分隔开多个任意类型的元素 t=(1,2.2,'aa',( ...
- python语言中的数据类型之列表
数据类型及内置方法 列表: list 可变类型,有序 用途:用来记录多个值(同属性) 定义方式:在[ ]内用逗号分隔开多个任意类型的值 l=['a','b','c'] #l=list(['a' ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- Python语言中各种进制相互转换
目录 Python语言中各种进制相互转换 将二进制.八进制.十进制的数分别转换成十进制的方法 将十进制转换成二进制.八进制.十六进制 Python语言中各种进制相互转换 本文参考自https://ww ...
- Python语言中的关键字(自己做的读书笔记)
电脑配置:联想笔记本电脑 windows8系统 Python版本:2.7.8 本文章撰写时间:2015.1.1 作者:陈东陈 阅读说明: 1.本文都是先解释,后放图片: 2.文中斜体部分要么为需要输入 ...
- Python之路-基础数据类型之字典 集合
字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...
- python语言中的编码问题
在编程的过程当中,常常会遇到莫名其妙的乱码问题.很多人选择出了问题直接在网上找答案,把别人的例子照搬过来,这是快速解决问题的一个好办法.然而,作为一个严谨求实的开发者,如果不从源头上彻底理解乱码产生的 ...
随机推荐
- Java IO网络编程经典模板
本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...
- javascript-保留2位小数函数方法
function zero(num){ var str=num.toString(); if(str.indexOf(".")==-1){ return num+'.00'; }e ...
- DOM内容操作和自定义、样式改变
自定义 function 方法名或函数名(参数1,参数2,...) { 方法体: return返回值:(可不写) } function abc() { alert("123"); ...
- Hive调优
Hive存储格式选择 和Hive 相关优化: 压缩参考 Hive支持的存储数的格式主要有:TEXTFILE .SEQUENCEFILE.ORC.PARQUET. 文件存储格式 列式存储和行式存储 行存 ...
- CS229 7.2 应用机器学习方法的技巧,准确率,召回率与 F值
建立模型 当使用机器学习的方法来解决问题时,比如垃圾邮件分类等,一般的步骤是这样的: 1)从一个简单的算法入手这样可以很快的实现这个算法,并且可以在交叉验证集上进行测试: 2)画学习曲线以决定是否更多 ...
- ob系列函数中常用函数
ob_start(); //打开一个输出缓冲区,所有的输出信息不再直接发送到浏览器,而是保存在输出缓冲区里面. ob_clean(); //删 ...
- c#,Model 实体转json,字符串转json
public class JsonF { #region 字符串转json /// <summary> /// 字符串转json /// </summary> /// < ...
- CSS3的过渡和转换
CSS3的过渡和转换 1.过渡 什么是过渡呢?过渡通俗的来说就是从一个样式到另一个样式的逐渐转换改变的效果. 过渡的属性: 属性 描述 css transition 简写属性,用于在一个属性中设置4个 ...
- 关于thinkphp3.2中的U函数使用的是二级域名但是U函数生成的还是WWW开头的域名
关于thinkphp3.2中的U函数使用的是二级域名但是U函数生成的还是WWW开头的域名 查看代码是由于U函数中对开启 APP_SUB_DOMAIN_DEPLOY 子域名部署 加的额外设置 如果你使 ...
- http://www.cnblogs.com/hanshuhe/archive/2012/08/30/vss.html
http://www.cnblogs.com/hanshuhe/archive/2012/08/30/vss.html