一、前言

  首先,不管学习什么数据类型,我们都带着以下几个问题展开学习:

  #1:基本使用

    1 、用途

    2 、定义方式

    3、常用操作+内置的方法

  #2:该类型总结

    1 、存一个值or存多个值, 只能存一个值 可以存多个值,值都可以是什么类型

    2 、有序or无序

    3 、可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash

二、元组  

#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),

#主要是用来读 定义:与列表类型比,只不过[]换成() age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))

#优先掌握的操作:

  #1、按索引取值(正向取+反向取):只能取          #跟字符串,列表的取值一样,就不详细说了

  #2、切片(顾头不顾尾,步长)

 t=(1,2,3,4,5,6)
print(t[1:4]) #结果为 (2, 3, 4)

  #3、长度

  t=(1,2,3,4,5,6)
print(len(t)) #结果为 6

  #4、成员运算in和not in

  t=(1,2,3,4,5,6)
print((1) in t) #结果为 Ture #not in 就为Flase

   #5、循环

 t=(1,2,3,4,5,6)

 #不依靠索引循环
for i in t:
print(i) #依靠索引的两种循环
#for循环
for i in range(len(t))
print(i) #while 循环
n=0
while Ture:
print(t[i])
n+=1

三、字典

#作用:存多个值,以key-value存取,取值速度快,每一个值都有对应的key

#定义:

    {}内以逗号分割多个元素

    key必须是不可变类型,value可以是任意类型

    info={'name':'egon','age':18,'sex':'male'}

#本质info=dict({....}) 或 info=dict(name='egon',age=18,sex='male') 或 info=dict([['name','egon'],('age',18)]) 或 {}.fromkeys(('name','age','sex'),None)

#优先掌握的操作:

  #1、按key存取值:可存可取

 dic={'name':'duoduo'}
dic['age']=10
print(dic) #值为{'name':'duoduo','age':10} 可存 dic['name']='qian'
print(dic) #值为{'name':'qian','age':10} 可改

  #2、长度len

 dic={'name':'duoduo','age':18}
print(len(dic)) #结果为 2

  #3、成员运算in和not in   (判断key存在)

 dic={'name':'egon','age':18}
print('name' in dic) # 结果为 Ture

  #4、删除

 dic={'name':'duoduo','age':18}
res=dic.pop('name') #和列表不同的地方在后面加的参数
print(res) #值为'duoduo'
print(dic) #值为{'age':18} # del dic['name']
# print(dic) 万能的删除 #res=dic.pop('qian',None) #这里的删除对象不再原来的字典
#print(res) #在后面添加None 就不会报错,返回值None

  #5、键keys(),值values(),键值对items(),循环

#键keys()
dic={'name':'duoduo','age':18}
print(dic.keys())
#值为dict_keys(['name', 'age']) for key in dic.keys(): #字典.keys()这个方法省略不写直接dic也可以
print(key) #结果为 name age #值values()
dic={'name':'duoduo','age':18}
print(dic.values()) #值为dict_values(['duoduo', 18]) for values in dic.values():
print(values) #结果为 duoduo 18 #键值对items
dic={'name':'duoduo','age':18}
print(dic.items())
#值为dict_items([('name', 'egon'), ('age', 18)]) for k,v in dic.items(): #k,v=('name', 'duoduo')
print(k,v)

  #掌握的知识:

 dic={'name':'duoduo','age':18}
print(dic.get('namexxxx')) #没发现,输出None
print(dic['namexxxxxxxxxx'])
# 这个会报错 #小结:寻找到返回值,寻找不到返回None print(dic.popitem()) #弹出末端的一组数据
print(dic) #值为 {'name':'duoduo'} dic.update({'x':1,'age':19})
#对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖
print(dic) #值为 {'name':'duoduo','age':19} dic.fromkeys() #创建新字典的种便捷方法
good_info={
'name':None,
'price':None,
'count':None
}
# 'mac' 20000 10
good_info['name']='mac'
print({}.fromkeys(['name','age','sex'],None))
#值为{'name':None,'age':None,'sex':None} #setdefaul的用处:
# 1、字典有中有key,则不修改,返回原key对应的原值
dic={'name':'duoduo','age':18}
res=dic.setdefault('name','qian')
print('返回值',res) #返回值 duoduo
print(dic) #{'name':'duoduo','age':18} # 2、没有对应的key,则添加,返回添加的key对应的value
dic={'age':18}
res=dic.setdefault('name','qian')
print('返回值',res) #返回值 qian
print(dic) #{'age': 18, 'name': 'qian'}

  #总结

  #1、存多个值
  #2、无序
  #3、可变

python全栈开发-Day5 元组、字典的更多相关文章

  1. python全栈开发_day6_元组,字典,集合

    一:元组    1)定义    元组:有序,可以按索引取值,不可变,但是可以修改元组里面可变数据的数据内容. res = (1,2,3,4,3,2,1) 2)内置方法和使用 res.count(1) ...

  2. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...

  3. python全栈开发-Day5 集合

    python全栈开发-Day5 集合 一.首先按照以下几个点展开对集合的学习 #一:基本使用 1 .用途 2 .定义方式 3 .常用操作+内置的方法 #二:该类型总结 1. 存一个值or存多个值 只能 ...

  4. python全栈开发笔记---------数据类型-----字典dict

    字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...

  5. Python全栈开发day5

    一.lambda表达式 对于简单的函数,存在一种简便的表示方式,即:lambda表达式 1 2 3 >>> shaw = lambda x,y:x + y >>> ...

  6. Python全栈开发 列表, 元组 数据类型知识运用及操作 range知识

    一.列表 1.什么是列表? 列表是一个可变类型,由  [ ] 表示,每一项元素用逗号隔开.列表能够装大量的数据,可以装对象的对象. 2.列表的索引和切片. 列表和字符串一样,也有索引和切片.只不过列表 ...

  7. Python 全栈开发:dict(字典)常用方法操作、dict嵌套

    数据类型的划分:可变数据类型和不可变数据类型. 不可变数据类型(可哈希):元祖.bool.int.str 可变数据类型(不可哈希):list.dict,set(集合) dict(字典): dict(字 ...

  8. python全栈开发学习_内容目录及链接

    python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...

  9. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

随机推荐

  1. dubbox系列【三】——简单的dubbox提供者+消费者示例

    1.dubbox-provider示例 在eclipse中建立maven project,名为provider-parent,包含两个maven medule:provider-api 和 provi ...

  2. 吾八哥学Selenium(二):操作输入框/按钮的方法

    一个web页面一定少不了输入框或者按钮这两种元素,那么在Python里如何使用Selenium操作web页面里的输入框和按钮呢?本文带你简单入门. 本文采用了一个例子,就是利用Selenium打开百度 ...

  3. mysql忘记密码解决的办法

    [很管用]忘记mysql root密码解决办法 1.编辑MySQL配置文件: 首先停止mysql服务, 然后开始编辑mysql配置文件:vi /etc/my.cnf在[mysqld]配置段添加如下一行 ...

  4. 64位Kali无法顺利执行pwn1问题的解决方案

    问题描述 ​ 环境:VMware Fusion + kali-linux-2018.1-amd64.iso ​ 问题:在Terminal利用./pwn1执行pwn1会出现 bash: ./pwn1:没 ...

  5. 关于HC04超声波模块测距的思考(51版)

    之前写过一篇HC04的使用文章,当时是使用stm32来实现的,原文链接. 后来又多次使用51来驱动这个模块,有时候有测距需要,使用了几次,总是感觉我上次那个程序不是很好, 所以这次对它进行了改进.虽然 ...

  6. DriverStudio 和 WDF驱动 通过GUID获取设备句柄的差别

    DriverStudio /***************************************************************************** * 功能: 通过 ...

  7. 笔记︱决策树族——梯度提升树(GBDT)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记来源于CDA DSC,L2-R语言课程所 ...

  8. VBR与CBR的区别是什么?

    VBR是动态码率.CBR是静态码率. VBR(Variable Bitrate)动态比特率.也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方 ...

  9. 视频显示格式720p

    720p是一种视频显示格式.字母p意为逐行扫描(progressive scan),数字720则表示水平方向有720条扫描线. 通常720p的画面分辨率为1280×720,一般亦可称为高画质(HD). ...

  10. dojo、iframe和FusionCharts兼容性

    今天,我们项目组对项目收尾检查,却突然发现了一个问题,FusionCharts出现兼容性问题. 在火狐浏览器上,项目运行正常:在IE8(标准模式下)运行正常,但是在IE8杂项出现兼容性问题.经过检查, ...