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的基础数据类型之⼀,其他编程 ...
随机推荐
- 第11章 UDP:用户数据报协-----读书笔记
1.分片应用程序只关心IP数据报的长度,如果它超过MTU值,那么就要对数据包进行分片. 2.UDP首部字段图: (16位源端口号+16位目端口号+16位UDP长度+16位UDP校验和+数据) 3.UD ...
- react使用moment进行日期格式化
导入moment import moment from 'moment'; 使用方式 年月日,时分秒 moment().format('YYYY-MM-DD HH:mm:ss'); // 2019-0 ...
- ros2中创建一个python package
完整的python package的目录结构如下: source /opt/ros/dashing/setup.bash cd ros2_ws/src && ros2 pkg crea ...
- Web前端基础(10):JavaScript(四)
1. 伪数组arguments arguments代表的是实参.有个讲究的地方是:arguments只在函数中使用. 1.1 返回参数个数 返回函数实参的个数:arguments.length 例子: ...
- PlayJava Day015
今日所学: /* 2019.08.19开始学习,此为补档. */ StringBuffer 定义: 可变字符序列 - 线程安全的 作用:基本与String相同,也是用于描述字符串 与String的区别 ...
- JPA的基本注解
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- IDEA 2019.2版本下载安装与PJ教程
场景 IDEA版本过低的话会导致某些IDEA插件没法安装,比如Lombok插件和EasyCode插件等. 实现 双击exe安装包 点击Next 选择安装路径,点击Next 设置桌面快捷方式,增加到右键 ...
- oracle 锁用户
oracle 线上用户老是被锁: 1,查明所有的用户哪些被锁了 SQL> select username,account_status,lock_date from dba_users; USE ...
- DOS下查看驱动版本号
1.进入目录:C:\Program Files\NVIDIA Corporation\NVISMI 2.输入命令nvidia-smi 可以看到我的显卡驱动版本号为431.60
- JVM-3-JVM内存结构
JVM内存结构可以大致可划分为线程私有区域和共享区域, 线程私有区域由虚拟机栈.本地方法栈.程序计数器组成,而共享区域由堆.元数据空间(方法区)组成.