数据类型

字典类型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. Linux镜像源

    1. 国内镜像源 (1.)备份原有镜像源文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ...

  2. c# 异步进度条组件BackgroundWorker

    //控件事件调用DoWork()方法就行. #region 进度条 private BackgroundWorker worker = null; private void DoWork(string ...

  3. SQLServer: 解决“错误15023:当前数据库中已存在用户或角色”

    首先介绍一下sql server中“登录”与“用户”的区别,“登录”用于用户身份验证,而数据库“用户”帐户用于数据库访问和权限验证.登录通过安全识别符 (SID) 与用户关联.将数据库恢复到其他服务器 ...

  4. 第12课 std::bind和std::function(3)_std::function可调用对象包装器

    1. std::function (1)首先是一个类模板,用于包装可调用对象.可以容纳除了类成员(函数)指针之外的所有可调用对象. (2)可以将普通函数,lambda表达式和函数对象类统一起来.尽管它 ...

  5. 我推荐阅读的微信公众号-IT类

    微信,正深刻影响着我们的生活,每个使用微信的人,从微信这个窗口去了解这个世界. 微信公众号,微信生态圈是核心功能之一,每天都有大量的文章创作.传播.转发出来,海量的信息扑面而来,微信阅读成为微信使用者 ...

  6. Elasticsearch 2.4 安装

    Ubuntu 18.04.1 Part I. Elasticsearch 1. install JDK Note: >1.8 reference: <Linux下安装Tomcat> ...

  7. CS229 6.15 Neurons Networks Deep Belief Networks

    Hintion老爷子在06年的science上的论文里阐述了 RBMs 可以堆叠起来并且通过逐层贪婪的方式来训练,这种网络被称作Deep Belife Networks(DBN),DBN是一种可以学习 ...

  8. SHOI2016方

    /* 上帝说 要方 是的 很方 计数问题的容斥思想 (首先要注意 正方形有斜着的QAQ) 考虑我们要求的合法正方形 ans 根据容斥 ans = 无限制方案书 - 一个点确定的方案数 + 两个点确定的 ...

  9. ios的input的输入框,readonly的时候,会弹出一小块ios的软键盘

    找了半天方法,结果input直接加个方法就好了 onfocus="this.blur()"

  10. Jquery在表格中搜索关键字

    <!DOCTYPE html><html><head> <title>ddd</title></head><body> ...