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的基础数据类型之⼀,其他编程 ...
随机推荐
- Mysql - 开发技巧(二)
本文中的涉及到的表在https://github.com/YangBaohust/my_sql中 本文衔接Mysql - 巧用join来优化sql(https://www.cnblogs.com/dd ...
- web渗透测试
信息收集 网络搜索 目录遍历:site:域名 intitle:index.of 配置文件泄露:site:域名 ext:xml | ext:conf | ext:cnf | ext:reg | ext: ...
- SQL 高效运行注意事项(三)
合理配置tempdb 1.tempdb在SQL Server停掉,重启时会自动的drop,re-create. 根据model数据库会默认建立一个新的 2.tempdb对IO的要求比较高,最好分配到高 ...
- Rman Enhancements(增强) In Oracle 11g. (Doc ID 1115423.1)
Rman Enhancements In Oracle 11g. (Doc ID 1115423.1) APPLIES TO: Oracle Database - Enterprise Edition ...
- hexdump 工具使用 和 .txt 文件的二进制查看
最近使用txt文件进行数据处理的时候,突然发现txt文件是怎样编码数据的了,它是以二进制来进行存储的吗?为了知道这个情况,我使用hexdump工具进行查看txt文件的二进制形式,并顺道进行学习了hex ...
- tensorflow 资源汇总-docker 运行 tensorflow-gpu on nvidia support
tensorflow 容器运行过程中使用到的命令记录: 使用image启动容器命令: docker run --name=: tensorflow/tensorflow:latest-gpu-py3- ...
- add to explorer context menu需不需要勾选
添加到鼠标右键菜单,添加以后,可以直接右键文件,直接选择这个软件打开选择的文件,建议勾选
- ElasticSearch7 设置外网访问失败
elasticsearch外网访问9200端口失败,bootstrap checks failed,the default discovery settings are unsuitable for ...
- 多个git合并,并保留log历史记录
面临的需求是:将多个git仓库作为一个单独目录,整合到一个新的git仓库中:并且保留历史记录. 1. 新建一个summary仓库 新建一个summary仓库,用于整合一系列git仓库. git clo ...
- 公司员工表示 nginx 之父被警方带走
ZDNet 12 日报导,俄罗斯警方当天突击搜查了 NGINX 公司(nginx 服务器项目商业化公司)在莫斯科的办事处,并带走了 NGINX 公司联合创始人 Igor Sysoev 与 Maxim ...