Python【day 15-2】基本数据类型-dict tuple set
''''''
'''
变量的数据类型
int str bool list
5、字典 dict
定义和写法:由{}表示,每个元素是key:value的键值对形式,元素间是逗号隔开
特点:
1、key是可哈希的-不可变类型(比如:int str tuple bool)
value的类型是不限制的,可以存放任意数据类型
2、字典是无序的,没有索引和切片
常见操作:
增
1、dic[key] = value #单个键值对添加,先建立一个空字典
2、dic = {k1:v1,k2:v2} #一次添加多个键值对-字典的定义
3、ret= dic.setdefault(key,value) #如果key已经存在,不会覆盖
#添加键值对,返回添加的value
4、dic2 = dic.fromkeys(iterable,value) #iterable中每个元素共用一个value
dic2 = dict.fromkeys(iterable,value) #类方法
#注意点1:会新产生一个新字典,原字典本身不会改变
#注意点2:fromkeys是一个类方法 删
1、pop
参数是key,删除key对应的元素-键值对,并且获取被删除元素的value
2、popitem
参数是空,随机删除一个元素-键值对,并且获取被删除元素-键值对
注意:从表面看,是删除了字典的最后一个键值对,但是字典的key是无序的,所有还是随机的
3、del
1、参数是key,删除key对应的元素-键值对
2、还可以直接删除整个字典,回收内存空间
4、clear
清空字典的元素-键值对,变成空字典
改
1 dic[key] = 新value
根据key获取到字典的value,对value进行重新赋值
2 update
dic1.update(dic2)
把字典2的元素依次添加到字典1
注意:如果字典2的key和字典1的key有相同的,会出现value的覆盖
查-取值
'''
'''
1 dic[key]
根据自定的key取value值,如果key不存在,就报错
2 get
写法:字典.get(key[,value])
参数1是key,参数2是默认返回值(不写默认是None)
1、如果key存在,就返回字典中key对应的value
2、如果key不存在,不会报错,会返回参数2(参数2不写默认是None)
这一点上,健壮性强于dic[key]来取值
3 setdefault 添加元素,并取值元素的value(key如果已经存在,不会覆盖)
写法:字典对象.setdefault(key1,value1)
参数1是新增加元素的key,参数2是新增加元素-键值对的value
1、将参数1和参数2作为新元素-键值对添加到字典对象
原字典对象添加了一个新元素-键值对
2、返回者是参数2,即获取新增加的value作为返回值-这个返回value1就是取值
(和pop的删除并返回被删除值有类似之处,
setdefault是添加并返回添加的value)
3、如果key1已经在原字典对象中存在了,新的键值对将无法添加,原字典对象保持不变
这里不会覆盖原字典对象的value
注意点:不会覆盖这个点和dic[key]=value,如果key已经存在,会覆盖,是不同的 字典for循环:
1、iterable
dic1 dic1.keys() dic1.values()
2、for i in dic1:
print(i,dic1[i]) for i in dic1.keys():
print(i,dic1[i]) #用的比较少 for i in dic.values():
print(i) #适用场景:比如求value的平均值 for i in dic1.items():
print(i) #这里返回是列表,列表的元素是键值对元组 (k1,v1) for k,v in dic1.items():
print(k,v) 6 元组--tuple
1、元组是只读的,不可变
不可变的是元组的第一层
如果元组的元素是列表,列表是可以添加删除元素的
2、操作方法比较的少
count()
index()
len()
3、iterable-可迭代的
支持for循环
(for循环的取值速度:dict>set>list>tuple)
4、元组是没有元组推导式的 7 集合-set
1、集合的概念:只有key的字典
2、特点:
无序
去重
元素是不可变的(可哈希的)--因为字典的key是不可变的
3、支持for循环,iterable
4、可冻结的集合 frozen
特点:frozen本身是不可变的(可哈希)
5、操作
两个集合之间可以& | - (交集&、并集|、差集)等
6、备注:
set不能作为字典的key
frozetkey作为字典的key
'''
'''''
'''
一、条件判断、循环
1 条件判断if
if 条件:
代码块(语句块)
elif 条件:
代码块
elif 条件:
代码块
。。。
else:
代码块
2 循环
1 while循环(条件循环)
while 条件:
循环体
break (结束整个循环-本层,如果是2层循环,只能跳出1层,不能跳出2层)
continue(结束本次循环-迭代,继续执行下一次循环)
else:
pass #当上面的while正常结束后(条件是False的时候,没有出现break),才执行这个语句 2for循环--主要用于循环遍历取值 3 print
print(message,end='\n',sep=' ')
参数1:打印输出的信息
参数2:行结束符,不写默认是换行 \n
参数3:分隔符,不写默认是空格
注意点:打印2个及以上元素,才会用到分隔符,打印一个元素,是用不到分隔符的 4 input 用户交互
5 range
range(start,end,step) --range和切片的区别,分隔符不同,前者是逗号,后者是冒号
#step不写,默认是1
切片:li1(start:end:step) 6 文件路径的分隔符
win \ 反斜杠-捺杠 \还表示转义 \t \r \n
linux / 顺斜杠-撇杠 二、运算符
1、算数运算符
+ - * / // % ** 2、比较运算符
> >= < <= == != 3、逻辑运算符
and-与 两个同时为真,结果才是真
or-或 两个中有一个是真,结果就是真
not-非 非假即真 非真即假 优先级顺序: 小括号() >not > and >or a and b
如果a不是0,返回b
如果a是0,返回a a or b
如果a不是0,返回a
如果a是0,返回b 4、赋值运算符
+= -= *= /= %=
a+=b 等价于 a = a+b 5、成员运算符
x in xx
比如:判断列表或者字典的元素 6、is和==
is比较的是内存地址
==比较的是值
小数据池:int str bool这三种类型的对象创建之后,符合规则的,会被缓存到小数据池
下次直接从小数据池中调用,从而节省内存
比如:a1='jack' a2='jack'
在创建变量a1的时候,会新开辟一个内存空间,这个内存空间的名字是a1,里面的值存的是'jack'
且把这个内存空间缓存到小数据池子中
在创建变量a2的时候,不会新开辟另外一个内存空间,而是把a2指向'jack'所在的内存地址
即a1和a2的内存地址是一样的 7、文件操作
open(文件路径,mode='模式',encode='编码')
模式: r w a r+ w+ a+ rb wb ab
for循环可以迭代文件句柄,拿到的是一行一行的内容
seek(0,0) #光标移到文件开头 参数1是偏移量 参数2中:0表示文件开头,1表示文件当前位置,2表示文件末尾
seek(0,2) #光标移到文件末尾
seek(0,1) #光标移到当前位置
tell() #打印光标的当前位置 with open(文件路径,mode='模式',encode='编码') as f:
pass #不需要flush和close 文件修改:
打开源文件,从源文件中读取内容到内存,修改,然后将内容写入到新文件。
删除源文件,把新文件重命名成源文件的名字
Python【day 15-2】基本数据类型-dict tuple set的更多相关文章
- python入门到放弃-基本数据类型之tuple元组
#概述 元组俗称不可变的列表,又称只读列表,是python的基本数据类型之一, 用()小括号表示,里面使用,逗号隔开 元组里面可以放任何的数据类型的数据,查询可以,循环可以,但是就是不能修改 #先来看 ...
- python基本数据类型list,tuple,set,dict用法以及遍历方法
1.list类型 类似于java的list类型,数据集合,可以追加元素与删除元素. 遍历list可以用下标进行遍历,也可以用迭代器遍历list集合 建立list的时候用[]括号 import sys ...
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- python基础(2)---数据类型
1.python版本间的差异: 2.x与3.x版本对比 version 2.x 3.x print print " "或者print()打印都可以正常输出 只能print()这种形 ...
- Python语言系列-02-基础数据类型
格式化输出 #!/usr/bin/env python3 # author:Alnk(李成果) # 百分号% 格式化输出 name = input('姓名:') age = input('年龄:') ...
- Python学习笔记:02数据类型
Python 数据类型 python中标准的数据类型有 基础类型 整型(长整型) 浮点型 复数型 布尔型 序列类型 字符串 列表 元组 字典 整型 整型和长整型并不严格区分,整型int的表达范围和计算 ...
- python学习Day5 几种数据类型的使用
今日内容 数据类型分类: int | complex | float | str | bool | list | dict | tuple | set 3种数据类型的方法:(数字.字符串.列表 ) 可 ...
- 基本数据类型(dict)
05. 基本数据类型(dict)内容:1. 字典的简单介绍2. 字典增删改查和其他操作3. 字典的嵌套⼀. 字典的简单介绍字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对 ...
- 基本数据类型(list,tuple)
基本数据类型(list,tuple)内容: 1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range⼀. 列表1.1 列表的介绍列表是python的基础数据类型之⼀,其他编程 ...
随机推荐
- SpringBoot 构建 REST 服务
摘要 该文章只为了说明如何整合REST服务,并不介绍如何使用,当做笔记吧. MongoDB 以MongoDB为例 maven 依赖 <dependency> <groupId> ...
- PHP 微信公众号/小程序获取openid,用户信息
1.获取code (获得openid的前置条件) 地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redi ...
- redis的缓存雪崩、缓存穿透和缓存击穿
缓存雪崩: 比如给缓存中的key设置了统一的过期时间,而在过期时间点,有大量的请求进来,这个时候redis中没有用户请求的资源,所以所有的请求会全部拥到数据库,如果数据库有报警监测的话,可能会报一下警 ...
- Horovod 分布式深度学习框架相关
最近需要 Horovod 相关的知识,在这里记录一下,进行备忘: 分布式训练,分为数据并行和模型并行两种: 模型并行:分布式系统中的不同GPU负责网络模型的不同部分.神经网络模型的不同网络层被分配到不 ...
- LInux:服务的管理-systemctl
使用systemctl管理服务 服务的启动与停止 服务的启动与停止 命令格式:systemctl 选项 服务名 选项说明: start:启动;stop:停止:restart:重启:status:服务状 ...
- go语言设计模式之Command
package main import ( "fmt" ) type Command interface { Execute() } type ConsoleOutput stru ...
- AcWing 33. 链表中倒数第k个节点
习题地址 https://www.acwing.com/solution/acwing/content/2997/ 题目描述输入一个链表,输出该链表中倒数第k个结点. 注意: k >= 0;如果 ...
- 01. Go 语言简介
Go语言简介 引用原文地址:http://m.biancheng.net/golang/ Go语言也称 Golang,兼具效率.性能.安全.健壮等特性.这套Go语言教程(Golang教程)通俗易懂,深 ...
- Java 的synchronized关键字使用
synchronized 关键字是实现锁的一种方式,是在jvm层面实现的非公平锁,以下是使用synchronized的四种方式 synchronized 特性: 1.非公平锁 2.可重入性 1.作用在 ...
- 80道最新java基础部分面试题(七)
自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 70.TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还 ...