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的基础数据类型之⼀,其他编程 ...
随机推荐
- linux自建https证书
一.生成单向认证的https证书 建立服务器私钥,生成RSA秘钥. 会有两次要求输入密码, 然后获得了一个server.key文件. 以后使用此文件(通过openssl提供的命令或API)可能经常回要 ...
- Vue 从入门到进阶之路(十一)
之前的文章我们说了一下 vue 中组件的原生事件绑定,本章我们来所以下 vue 中的插槽使用. <!DOCTYPE html> <html lang="en"&g ...
- Slickflow.NET 开源工作流引擎快速入门之一: 简单序列流程代码编写示例
前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的流程来示例说明,如何快速了解引擎代码的编写. 版本: .NETCore 2.1 ...
- PHP stat 文件系统函数
定义和用法 stat - 给出文件的信息 版本支持 PHP4 PHP5 PHP7 支持 支持 支持 语法 stat ( string $filename ) 获取由 filename 指定的文件的统计 ...
- 【前端知识体系-NodeJS相关】对NodeJS模块机制的理解
1. CommonJS模块规范 1.1 模块引用 var math = require('math'); 1.2 模块定义 [!NOTE] 上下文提供exports对象用于导出当前模块的方法和变量,并 ...
- PHP获取二维数组指定字段值的和
array_sum(array_column($arr, 'num')); //获取二维数组 num字段的和 $arr = [ [ 'device_uid' => '123456', 'num' ...
- tensorflow dataloader 相关内容
Tensorflow dataloader 相关调研:数据读取是训练的开始,是非常关键的一步:下面是调研时搜集到的一些相关链接: 十图详解tensorflow数据读取机制 https://zhuanl ...
- Python语法速查: 1. 数据类型与内置函数
返回目录 (1)常用内置数据类型 分类 类型名称 描述 数字 int 整数 float 浮点数 complex 复数 bool 布尔值 序列 str 字符串(不可变序列) list 列表 tuple ...
- HTML网页自动跳转(重定向)
HTML网页自动跳转(重定向) meta <head> <meta http-equiv="refresh" content="5;url=https: ...
- 剑指Offer-36.数字在排序数组中出现的次数(C++/Java)
题目: 统计一个数字在排序数组中出现的次数. 分析: 给定一个已经排好序的数组,统计一个数字在数组中出现的次数. 那么最先想到的可以遍历数组统计出现的次数,不过题目给了排序数组,那么一定是利用了排序这 ...