数据类型

字典类型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语言中的数据类型之字典的更多相关文章

  1. python语言中的数据类型

    一.内存管理 1.python解释器的垃圾回收机制 垃圾:当一个值上没有人绑定任何变量名时(当引用计数为0),该值就是一个垃圾. python解释器运行时会检测值的引用计数,当引用计数=0该值会被清除 ...

  2. python语言中的数据类型之集合

    数据类型 集合类型    set 用途:1.关系运算        2.去重 定义方式:在{}内用逗号分隔开多个元素,但元素的特点是 1.集合内元素必须是不可变类型 2.集合内元素无序 集合内元素不能 ...

  3. python语言中的数据类型之元组

    数据类型 元组       tuple 元组:不可变类型 用途:元组就是一个不可变的列表,当需要存不改动的值时可用元组 定义方式:在()内用逗号分隔开多个任意类型的元素 t=(1,2.2,'aa',( ...

  4. python语言中的数据类型之列表

    数据类型及内置方法 列表: list    可变类型,有序 用途:用来记录多个值(同属性) 定义方式:在[  ]内用逗号分隔开多个任意类型的值 l=['a','b','c'] #l=list(['a' ...

  5. Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

    Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...

  6. Python语言中各种进制相互转换

    目录 Python语言中各种进制相互转换 将二进制.八进制.十进制的数分别转换成十进制的方法 将十进制转换成二进制.八进制.十六进制 Python语言中各种进制相互转换 本文参考自https://ww ...

  7. Python语言中的关键字(自己做的读书笔记)

    电脑配置:联想笔记本电脑 windows8系统 Python版本:2.7.8 本文章撰写时间:2015.1.1 作者:陈东陈 阅读说明: 1.本文都是先解释,后放图片: 2.文中斜体部分要么为需要输入 ...

  8. Python之路-基础数据类型之字典 集合

    字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...

  9. python语言中的编码问题

    在编程的过程当中,常常会遇到莫名其妙的乱码问题.很多人选择出了问题直接在网上找答案,把别人的例子照搬过来,这是快速解决问题的一个好办法.然而,作为一个严谨求实的开发者,如果不从源头上彻底理解乱码产生的 ...

随机推荐

  1. Doris与Hadoop yarn混合部署遇到的坑

    Doris默认端口 Yarn 默认端口: 如图,端口冲突,在混合部署的情况下,会出现2个问题: 1. Yarn ResourceManager启动不起来 解决办法:修改yarn.resourceman ...

  2. IDEA Git 配置及使用

    1.下载并安装 Git 2.新建项目 3.配置版本控制器 4.新建github仓库 5.定位到项目根目录,执行命令 创建git仓库时忘记添加 .gitignore 怎么办? vi .gitignore ...

  3. Django -- settings 详解

    Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运 ...

  4. pytho 单例模式

    单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!! (程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象.存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅 ...

  5. 04-spark streaming

    1.基本概念(了解) ①流(Streaming): 是一种数据传送技术,它把客户机收到的数据变成一个稳定连续的流,源源不断地送出,使用户听到的声音或看到的图象十分平稳, 而且用户在整个文件送完之前就可 ...

  6. Ajax总结一下

    一.什么是Ajax Ajax(Asynchronous JavaScript and XML),可以理解为JavaScript执行异步网络请求.通俗的理解的话就是,如果没有Ajax技术,改变网页的一小 ...

  7. [Unity动画]05.Entry & Exit & Any State

    0.状态机如下: Any State->Dying:isDying为true Dying->Reviving:isDying为false Reviving->Exit:isDying ...

  8. mysql安装卸载-windows

     安装:(注意点) 官网download安装包 choose setup type --> custom 安装路径 detailed configuration developer machin ...

  9. jquery给按钮绑定事件

    JQuery: $(function(){ $("#btn1").bind("click",function(){ $("#div1").s ...

  10. 《算法》第六章部分程序 part 5

    ▶ 书中第六章部分程序,包括在加上自己补充的代码,网络最大流 Ford - Fulkerson 算法,以及用到的流量边类和剩余流量网络类 ● 网络最大流 Ford - Fulkerson 算法 pac ...