元祖,range,字典,结构,fromkeys的使用
3.5.3 元祖 关键字 tuple
tu=(1,2,3,'你好',True)
print(tu)
元祖是有序,不可变数据,不能进行修改, 支持索引查看
存储一些比较重要的信息,在配置文件中使用
存放一些用户密码的时候可用
元祖其实就是一个不可以修改的列表
tu=('你好')
print(type(tu)) #数据类型为字符串
tu=('你好',)
print(type(tu)) #数据类型为元祖
tu=()
print(type(tu)) #数据类型为元祖
3.5.4 range 范围
range(0,10) #0起始位置 10终止位置
print(range(0,10))
输出结果:range(0,10)
python3中range(0,10)是一个可迭代对象
python2中的xrange和python3中range是相似的,都是可迭代对象
python2中的range 默认获取到一个列表
python3中获取列表如下:
print(list(range(0,10))) #输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(0,10,2))) #输出结果: [0, 2, 4, 6, 8]
range 和切片一样
range 第一个是起始位置,第二个是终止位置,第三个是步长,终止位置和切片一样都是顾头不顾尾,和切片不同的是他们之间用逗号分开
for i in range(1,100,2): #可以让for循环来循环数字
print(i)
3.5.5 字典 关键字 dict 无序可变
键值对数据 dic={'键':'值'} dic={'key':'value'} 存储数据
字典的查找快一些 将数据和数据之间进行关联
字典中逗号分割是一个元素
避免哈希冲突使用了开放寻址法
可哈希的(不可变数据:int,str,tuple.bool)
不可哈希的(可变的数据:list,dict,set)
key必须是可哈希的(不可变),键不能重复,重复的话后面的值就会把前面的值覆盖
value没有要求,可以保存任意类型的数据.
键和值成双成对出现,不能没有值
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
print(dic[123]) #通过键查找值
注意:dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的,而hash表不是连续的,所以不能进行切片操作,它只能通过key来获取dict中的数据.
python3.6以上版本,字典默认是有序的,咱们怎么写的就怎么打印出来,但是出去和别人说的时候,字典是无序的
3.5.5.1 增
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
dic[55] = '小苍'
print(dic)
输出结果:{123: 456, '123': 456, True: '456', (1, 2, 3): ['帅哥', '美女'], 55: '小苍'}
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
dic.setdefault(55,'小苍') #55为键,'小苍'为值
print(dic)
1.先去字典中通过55这个键去查有没有值,没有就是None
2.如果有值,就不进行添加
3.如果没有值,就添加 返回的是添加的值
3.5.5.2 删
- 通过键删除 del
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
del dic[123]
print(dic)
- 通过指定键删除
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
dic.pop(123) #pop有返回值,返回被删除的值
dic.pop(55,'没有') #如果键值不存在,返回被指定的内容
print(dic)
- 清空 clear
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
dic.clear()
print(dic)
- 随机删除 popitem()
dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
dic.popitem()
print(dic)
python3.6以上版本默认删除最后一个,以前版本中随机删除
3.5.5.3 改
- 更新 update
dic = {11:'aa',22:'bb'}
dic.update({33:'cc',44:'dd'}) #()放的是字典
print(dic)
被更新的内容如果在,要更新的内容中的值就会覆盖之前的值
update括号中的字典级别高于update前面的字典
两个字典中没有一样的就合并
dic = {11:'aa',22:'bb'}
dic[11] = 'cc' #字典中存在这个键叫改,不存在这个键叫增
print(dic)
3.5.5.4 查
- 通过键查找
dic = {11:'aa',22:'bb'}
print(dic[11]) #如果键不存在就会报错
- get
dic = {11:'aa',22:'bb'}
print(dic.get(11)) #如果键不存在不会报错,返回None
print(dic.get(33,'没有')) #可以指定返回的内容
输出结果:
aa
没有
- setdefault
dic = {11:'aa',22:'bb'}
print(dic.setdefault(11)) #如果键不存在不会报错,返回None
3.5.5.5 其他操作
- for 循环
dic = {11:'aa',22:'bb'}
for i in dic:
print(i) #输出的键
dic = {11:'aa',22:'bb'}
for i in dic:
print(dic.get(i)) #输出的值
dic = {11:'aa',22:'bb'}
for i in dic.keys():
print(i) #输出的键
print(dic.keys()) #高仿列表,不能使用下标 可使用for循环
输出结果:
11
22
dict_keys([11, 22])
dic = {11:'aa',22:'bb'}
for i in dic.values():
print(i) #输出的值
print(dic.values()) #高仿列表,不能使用下标 可使用for循环
输出结果:
aa
bb
dict_values(['aa', 'bb'])
dic = {11:'aa',22:'bb'}
for i in dic:
print(i,dic[i]) #输出的键和值
dic = {11:'aa',22:'bb'}
for i in dic.items():
print(i) #输出的键和值 (元祖形式)
输出结果:
(11, 'aa')
(22, 'bb')
3.5.5.6 解构
a,b,c = 1,2,3 #'456' [7,8,9] (7,8,9) {'1':7,'2':8,'3':'9'}字典输出的是键 True,,True,False 值和变量名要一一对应
print(a)
print(b)
print(c)
a = 1,2 本身是一个元祖
dic = {11:'aa',22:'bb'}
for i,k in dic.items(): #i,k = (11:'aa')
print(i)
print(k)
输出结果:
11
aa
22
bb
3.5.5.7 fromkeys
dic = dict.fromkeys([1,2,3]) #后面不写默认None
print(dic)
输出结果:{1: None, 2: None, 3: None}
dic = dict.fromkeys([1,2,3],'你好')#前面是可迭代对象,创建字典的键,后面是字典的值
print(dic)
输出结果:{1: '你好', 2: '你好', 3: '你好'}
dic = dict.fromkeys([1,2,3],'你好')
dic[2] = '好嗨啊'
print(dic)
输出结果:{1: '你好', 2: '好嗨啊', 3: '你好'}
dic = dict.fromkeys([1,2,3],[1,2,3])
dic[2].append(5)
print(dic)
输出结果:{1: [1, 2, 3, 5], 2: [1, 2, 3, 5], 3: [1, 2, 3, 5]}
创建的新字典的值用的是同一个值,值是一个可变数据类型
dic = dict.fromkeys([1,2,3],[1,2,3])
dic[2] = '你好'
print(dic)
输出结果:{1: [1, 2, 3], 2: '你好', 3: [1, 2, 3]}
1.先创建一个新字典:{1: [1, 2, 3], 2: [1, 2, 3], 3: [1, 2, 3]}
2.更改的是字典中键2中的值为'你好'
3.5.5.8 字典的嵌套
dic = {'北京':{'二环':{'故宫':'皇帝'}},'河北':{'保定':'驴肉火烧'}}
print(dic['北京']['二环']['故宫'])
输出结果:皇帝
元祖,range,字典,结构,fromkeys的使用的更多相关文章
- py基础2--列表,元祖,字典,集合,文件
本节内容 列表.元祖操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 三元运算&生成式&成员运算&解压法&队列堆栈&数据类型转换 1. 列表操作 ...
- Python--数据类型与变量(列表、元祖、字典)
今天我们来看Python中3种內建的数据结构:列表.元祖和字典 列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素特性:1.可存放多个值2.可修改指定索引位置对应的值,可变 ...
- Python之旅第四天(列表、元祖、字典和习题)
第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一 ...
- day3-创建列表、元祖、字典
创建列表.元祖.字典 创建列表 name_list = ['alex', 'seven', 'eric'] 创建元祖 ages = (11, 22, 33, 44, 55) 创建字典 person = ...
- Python eval() 的使用:将字符串转换为列表,元祖,字典
eval() 函数用来执行一个字符串表达式,并返回表达式的值. 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expres ...
- 干货!Python中字符串、列表、元祖、字典,集合之间的转换
一.字符串的转化 1.字符串转换成列表 字符串转换成list 的时候,str可以作为迭代对象,直接放入:也可以使用split对字符串进行切割.然后返回list s = '1a1b1c' print(l ...
- python基础3(元祖、字典、深浅copy、集合、文件处理)
本次内容: 元祖 字典 浅copy和深copy 集合 文件处理 1.1元祖 元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号(),列表使用方括号[].元祖创建很简单,只需要 ...
- 关于Python元祖,列表,字典,集合的比较
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'], ...
- python,列表,元祖,字典
list 列表 li = [1,",[3,4]] 1.用中括号括起来 2.用,来分割每一个元素 3.列表中的元素可以是,数字,字符串,列表,布尔值 4.“集合”,内部可以放置任何东西 li ...
随机推荐
- CSS学习笔记-过度模块-编写过渡效果
过渡模块-编写过渡效果: 1.编写过渡套路: 1.1不要管过渡,先编写基本界面 1.2修改我们认为需要修改的属性 1.3再给被修改属性的元素添加过渡即可 2.弹性效果 < ...
- android 对于asset和raw下文件的操作
Android 中资源分为两种,一种是res下可编译的资源文件, 这种资源文件系统会在R.Java里面自动生成该资源文件的ID,访问也很简单,只需要调用R.XXX.id即可;第二种就是放在assets ...
- 激活windows操作系统的命令行指令
1.开始菜单中搜索命令提示符,右键管理员运行 2.为了避免激活的失败,首先卸载已经过期的密钥 输入以下命令:slmgr.vbs /upk 回车确认之后会弹出提示“已成功卸载了产品密钥” 3.下一步是将 ...
- python Djanjo csrf说明与配置
Django csrf CSRF 全称(Cross Site Request Forgery)跨站请求伪造.也被称为One Click Attack和Session Riding,通常缩写为CSR ...
- 008.MongoDB分片群集概念及原理
一 MongoDB分片介绍 1.1 分片 Mongodb另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足 ...
- 2-2 远程管理命令-网卡和IP地址的概念
02.查看或配置网卡信息 序号 命令 对应英文 作用 01 ifconfig configure a network interface 查看/配置计算机当前的网卡配置信息 02 ping ip地址 ...
- 不依赖官方LibPack编译FreeCAD的一次尝试
在Windows下编译FreeCAD,通常的方法是依赖官方提供的LibPack,但是只有vs2008, vs2012, vs2013等几个版本提供.比如现在感觉vs2017比较好用,可是没有官方Lib ...
- 【转】bootstrap table轻松实现数据表格
在使用bootstrap table时可能在很多时候回用的表格来显示数据,如果自己写那肯定没问题,但是数据展示出来就麻烦多了,然而bootstrap table 封装了一套完善的数据表格组件,把从后台 ...
- 2019 SDN上机第6次作业
2019 SDN上机第6次作业 1.实验拓扑 (1)实验拓扑 (2)使用Python脚本完成拓扑搭建 from mininet.topo import Topo from mininet.net im ...
- 简单App项目的运行
我和我的同伴两个人从网上下载一个仿微信登录源码,导入到eclipse中,两人结队练习这个源代码的操作, 运行项目到Android虚拟器上,显示效果为 我们还运行这个项目到手机设备上,显示效果为 接 ...