day 07 元组,字典和集合等数据类型介绍
元组:就是一个不可变的列表
1.用途,当我们需要记录多个值,并且没有更改的需求的时候,应该使用元组
2定义方式:使用,在 ( ) 中分隔开多个任意类型的值
注:t=("egg",),如当列表中只有一个值的时候,在末尾加上 , 逗号
t=tuple("hello") # 元组和列表的类型的类型转换相同,可将任意可迭代类型转换成 元组类型
常用操作+内置方法
1.按照索引取值,因为元组是不可变类型,所以只能取值
.count() 统计某个元素出现的次数
.index() 计算出某个元素出现的位置的索引值
总结:元组是不可变类型
字典:记录多个不同属性的值
定义方式:在{} 内使用逗号分隔开多个元素,每个元素都是key:value的形式,其中value可以是任意类型,但是key只能是不可变类型
数据类型转换
l1=(["name","haha"],["age","18"],("gender","male"))
dic=dict(l1) # 可以直接将l1 转换成一个字典
dic1=dict(x=1,y=2,z=3) # 也可以直接将括号内的内容转换成字典
常用操作+方法
1按key取值:可存可取
dic={'name': '哈哈', 'age': 18, 'gender': 'male'}
dic["name"] #取出元素对应的值,如果指定的key,在字典中不存在则报错
dic["name"]="xixi" #如果key对应的值存在,则修改字典中的已存在键值对,如果不存在,则新增,新的键值对
2len
计算出字典中存在的键值对的数量
3in和not in 判断得是字典的key
4删除
del dic["name"] #
t=dic.popitem() #随机弹出一个键值对,返回值是一个键值对的元组
t=dic.pop("name") # 通过给定的key,弹出一个元素,返回值是key对应的value
5键keys(), 值values(),键值对items()
dic.keys() #取出字典的所有的key的值,在python2中直接返回一个列表,在python3 不是直接返回列表,可以通过for循环取出
dic.values() #取出字典的所有的value值
dic.items() #取出字典中所有的键值对,一个键值对保存在一个元组中
5. get取值
get() 取值,如果key在字典中,则返回key对应的value.如果key不存在,不会报错,返回一个None
需要掌握的操作
dic.formkey(iter,char)
通过第一个参数给定的可迭代对象,作为key,第二个参数作为默认值,快速的构造一个字典
方法需要通过使用字典调用{} 不会改变调用字典,返回一个构造完成的字典,所以调用字典的状态并不会影响调用方法的结果
dic.updata
使用updata()中给定的字典更新调用的字典,如果key已经存在则使用参数中的key对应的value值,更新源字典,如果key不存在,则添加
dic.setdefault(key,value) # 执行完毕后的结果时保证字典中有 这个值存在
参数是key和value 如果调用字典中不存在key,则将参数中的key,value添加到字典中,返回值,是参数中的vlaue值
如果调用字典中key,已经存在,则不做任何操作,直接将key对应的value返回
集合set
用途:
做关系运算
去重
定义方式:在{} 中使用,逗号分隔开多个值,多个元素必须满足以下要求
每一个元素必须是不可变类型
集合内的元素不能重复
集合无序
注意: d={} 默认d是字典类型, d=set{} 则d是集合类型
常用操作+内置的方法
关系运算
pythons={'李铁蛋','张全蛋','王铜蛋','赵银蛋','oldboy','艾利克斯'}
linuxs={'kevin','egon','tank','艾利克斯','王铜蛋'}
求即报名python课时又报名linux课程的学员:交集
python & linuxs 返回值是一个字典类型
pythons.intersection(linuxs)
求所有的学员姓名:并集
pythons | linuxs
python.union(linuxs)
求只报名python课程的学员:差集
pythons-linuxs
python.difference(linuxs)
求没有同时报名两门课程的学员:对称差集
python^linuxs
pythons.symmetric_differcnce(linuxs)
父集/子集 :包含和被包含的关系
只有一个集合中的元素包含另一个集合中的全部元素的时候,才会有子集和父集的概率
set1={1,2,3}
set2={1,2}
set1>=set2 # True
set1.issuperset(set2) # True
掌握的操作
set1.update({2,3,4}) #使用参数中的集合更新源集合
set1.add(1) #新增一个值
set1.pop() 随机弹出一个值
set1.remove(2) 弹出2这个值
set1.difference_update(set2) 将set1和set2做差集操作后的结果,给赋值给set1
set.discard() # 如果给定的参数是集合中的一个成员则把他删除,如果不是则什么也不做,无返回值
在条件判断中所有的数据都会转换成布尔值
只需记住布尔值为假的数据类型即可,0,None,空
day 07 元组,字典和集合等数据类型介绍的更多相关文章
- 【python基础语法】元祖、字典、集合、数据类型的分类(第4天课堂笔记)
""" 列表:可变数据类型,对列表内部的元素可以进行修改 元祖: tuple,不可变数据类型,是不可以进行增删查改 元祖的方法: count 查找元素的数量 index ...
- python基础之02列表/元组/字典/set集合
python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...
- python基础知识3——基本的数据类型2——列表,元组,字典,集合
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- Python基本数据类型--列表、元组、字典、集合
一.Python基本数据类型--列表(List) 1.定义:[ ]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素. 2.列表的创建: # 方式一 list1 = ['name','ag ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- Python基础-列表_元组_字典_集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Python成长笔记 - 基础篇 (三)python列表元组、字典、集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 一.列表和元组的操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义 ...
- Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式
Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell ...
随机推荐
- 外网访问ARM嵌入式Linux系统
外网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从外网也能访问ARM嵌入式Linux系统? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并 ...
- C语言实例:数组与字符串
数组: #include <stdio.h> #include <stdlib.h> #define ARRAY_SIZE(Array) (sizeof (Array) / s ...
- 7.24-Codeforces Round #494 (Div. 3)
链接:http://codeforces.com/contest/1003 A. Polycarp's Pockets 题型:模拟 题意:把初始集合拆分,要求相同的数不在同一个集合中,求出需要的集合个 ...
- CSS3 3D酷炫立方体变换动画
我爱撸码,撸码使我感到快乐! 大家好,我是Counter,本章微博主要利用了CSS3的一些新特性, 主要用到关键帧来使3D图形运动起来,涉及到了一些抽象的思想,立体的想象. 先给大家看看完成的效果,代 ...
- 【做题】51Nod1766树上的最远点对——直径&线段树
原文链接 https://www.cnblogs.com/cly-none/p/9890837.html 题意:给出一棵大小为\(n\)的树,边有边权.\(m\)次询问,每次给出两个标号区间\([a, ...
- MyBatis进阶(二)
MyBatis之动态SQL 动态SQL之foreach 有时SQL语句where条件是在一个集合或者数组里,需要使用in关键字,这时可以使用foreach动态SQL语句,例如: select * fr ...
- shiro 分布式缓存用户信息
很多分布式缓存登录用户信息一般都是存在redis类似的缓存里面.其中实现细节或者拆分都是大同小异. 一般用户登录权限管理都用shiro处理. 如果仔细分应该就是一下3种. 1,有一个单独的用户权限管理 ...
- js 过滤器
,,]; ary[] = ; ary.filter(function(x) { return x === undefined; }); // A. [undefined x 7] // B. [0, ...
- 版本控制 version control
而版本控制能记录所有的操作,如创建删除增加,并能返回到之前的版本.版本控制通常需要同一些远程仓库配合使用,如GitHub 廖雪峰教学有 https://www.liaoxuefeng.com/wiki ...
- canvas实现点连线动画
给定一系列坐标(x, y)点, 实现将各个点按照先后顺序连接起来的动画.还有两个要求: 1.点与点之间直接用线段连接, 不用考虑曲线 2.动画支持暂停, 继续, 重头开始播放功能 这个功能该怎么实现呢 ...