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语言中的编码问题
在编程的过程当中,常常会遇到莫名其妙的乱码问题.很多人选择出了问题直接在网上找答案,把别人的例子照搬过来,这是快速解决问题的一个好办法.然而,作为一个严谨求实的开发者,如果不从源头上彻底理解乱码产生的 ...
随机推荐
- 关于android中透明、半透明、百分比转换
在xml文件中,可以直接写#0000,这个是全透明的效果.#9000这个值相当于56%的样子,因为颜色值是16进制的,#9000相当于(9/16)而百分比的话,大家可以按照这个比例来换算全透明 #00 ...
- T-SQL 带参数存储过程
创建带参数的存储过程 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') dr ...
- Java 问题集
1.命令行编译.java文件,找不到或者无法加载主类,需要配置完整的PATH,CLASSPATH环境变量,CLASSPATH最前面是 点+分号 PATH=%JAVA_HOME%\binCLASSPAT ...
- python3基础操作
ubuntu下python连接mysql apt-get install python-mysqldb 获取当前时间 >>> from datetime import datetim ...
- C#写Excel(OleDB)
先辟谣(至少对Excel2010来说) IMEX ( IMport EXport mode )设置 IMEX 有三种模式,各自引起的读写行为也不同,容後再述: 0 is Export mode:只能写 ...
- HDFS分布式文件系统
hadoop致力于构建在廉价的商用服务器上 多副本存储策略(副本数存多少合适) 常见是数据访问方式:流式数据访问(更适合大数据的访问) 随机数据访问(更适合传统的关系型数据库的访问)
- pytho 单例模式
单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!! (程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象.存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅 ...
- if 判断语句
if 条件:if语句块当条件成立的时候会执行if语句块, 如果条件不成立. 不执行语句块的内容 例: money = int(input("请输入你兜里的钱:")) # 300 i ...
- python-初始化函数
#本次学习:初始化函数 #-*- coding:utf-8 -*- class SeniorTestingEngineer: #初始化函数,在创建对象的时候就设置初始值.例如我们在SeniorTest ...
- 安全测试2_Web前端知识学习
上次讲到安全的简介,这次就来简单的学习下基本的前端知识(html.js.css(不作讲解),牛逼的请忽略!!! 1.Html简单概述: Html和Html DOM 2.Html字符实体(借用别人的,详 ...