当前位置: 首页 > news >正文

python字典与集合还有数据类型转换

字典——使用大括号{},是可变数据类型

使用 键查找数据,不支持下标,数据以键值对出现,和数据顺序没有关系
disct = {'name':'gyq','age':18,'Gender':'boy'}
print(disct['age'])
新增数据
disct = {'name':'gyq','age':18,'Gender':'boy'}

disct['id'] = 110 #默认添加到尾部
print(disct)
修改字典数据——通过已有的键修改数据,不然就成了添加数据
disct = {'name':'gyq','age':18,'Gender':'boy'}


disct['name'] = 'Tom'
print(disct)
删除指定数据——通过指定key实现
disct = {'name':'gyq','age':18,'Gender':'boy'}
del disct['name']

print(disct)
清空字典——clear()
disct = {'name':'gyq','age':18,'Gender':'boy'}

disct.clear()

print(disct)    #{}
查找
1.key值查找
disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct['name'])
2.get()
语法:字典序列.get(key, 默认值)
disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct.get('age'))
注意:当查找的key不存在则返回第二个参数(默认值),如果省略的第二个参数,则返回None。
如:
disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct.get('id'))  #None

disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct.get('id',0))  #0
key——查找字典中所有的key,返回可迭代对象
disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct.keys())    #dict_keys(['name', 'age', 'Gender'])
values——查找字典中所有的values,返回可迭代对象
disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct.values()) #dict_values(['gyq', 18, 'boy'])
items—— 查找字典中所有的键值对,返回可迭代对象
里面的数据是元组,元组数据1是字典key,元组数据2是key对应的值
disct = {'name':'gyq','age':18,'Gender':'boy'}

print(disct.items())  #dict_items([('name', 'gyq'), ('age', 18), ('Gender', 'boy')])
for循环遍历字典的key
disct = {'name':'gyq','age':18,'Gender':'boy'}

for key in disct.keys():
print(key)
for循环遍历字典的values
disct = {'name':'gyq','age':18,'Gender':'boy'}

for values in disct.values():
print(values)
for循环遍历字典的元素
disct = {'name':'gyq','age':18,'Gender':'boy'}

for items in disct.items():
print(items)
for循环遍历字典的键值对(拆包)
disct = {'name':'gyq','age':18,'Gender':'boy'}

for key,value in disct.items():
print(f'{key} = {value}')

集合

可变类型的数据,无序
创建集合使用{}或set(),但是如果要创建 空集合只能使用set(),因为{} 用来创建空字典
s1 = {10,20,30,40}
print(s1)    #{40, 10, 20, 30}
注意:这是无序显示,所以 集合没有顺序
集合具有 去重功能
s2 = {10,10,20,30,40}
print(s2)    #{40, 10, 20, 30}
使用 set()创建集合
s3 = set('gyq1234')
print(s3)    #{'4', '3', '2', '1', 'y', 'q', 'g'}
创建 空集合
s4 = set()
print(s4)    #set()
add() 增加单个数据
s1 = {10}
s1.add(20)

print(s1)
注意:如果追加的数据是 集合已有数据,则什么都不做。
update()  是增加序列时使用
s1 = {10}
s1.update([100,20,30])
print(s1)
删除数据
remove() , 删除集合中的指定数据,如果数据不存在则报错
s1 = {10,20}
s1.remove(10)

print(s1)
discard()     删除集合中的指定数据,如果数据 不存在也不会报错
s1 = {10,20}
s1.remove(10)

print(s1)
pop() 随机删除集合中的某个数据, 并返回这个数据
s1 = {10,20,30,40}
del_num = s1.pop()

print(del_num)
查找数据
in : 判断数据在集合序列
not in : 判断数据不在集合序列
s1 = {10,20,30,40}

print(10 in s1 )    #True
print(200 not in s1 )    #True

公共操作

运算符
print(变量1 + 变量2)
print ( 变量  * 想要复制的数量 )
print(元素 in 变量名)
print(元素 not in 变量名)
公共方法
range(start,end,step) ——配for循环使用
for sum in range(1,6,2):
print(sum)
enumerate (可遍历对象,tart=0)——start参数用来设置遍历数据的下标的起始值,默认为0
list1 = ['a','b','c','d','e']

for i in enumerate(list1):
print(i)
注意: enumerate ()返回的结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是元迭代对象对象的数据

数据类型转换

tuple()——转换成元组
set()——转换成集合,集合没有顺序,不支持下标,有自动去重功能
list()——转换成列表
list1 = [10,20,30]

s1 = {10,20,30}

t1 = (10,20,30)

print("这是列表转元组:", tuple(list1))

print("这是集合转列表:",list(s1))

print("这是元组转集合:",set(t1))

列表推导式

作用:用一个表达式创建一个有规律的列表或控制一个有规律列表
优点:简化代码
list3 =[i for i in range(10)]    #第一个i作为返回值,将生成的序列存储到i中,返回给变量。
print(list3)
#第一个i作为返回值,将生成的序列存储到i中,返回给变量。
带if的列表推导式
list5 = [i for i in range(10) if i % 2 == 0]
print(list5)
多个for循环实现列表推导式
list6 = [(i,j) for i in range(1,3) for j in range(3)]
print(list6)    #[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

 字典推导式

创建一个字典:字典key是1-5数字,value是这个数字的2次方
dict1 = {i:i**2 for i in range(1,5)}
print(dict1)
将两个列表合并为·1一个字典
list1 = ['name','age','gender']
list2 = ['gyq',20,'man']

dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)
注意:
如果两个列表数据个数相同,len统计任何一个列表的长度都可以
            如果两个列表数据个数不同,len统计数据多的列表数据个数会报错;
            len统计数据少的列表数据个数不会报错。
提取字典中目标数据——大于等于200
counts = {'MBP':268,'HP':125,'DELL':201,'Lenovo':99,'acer':99}

dict1 = {key:value for key, value in counts.items() if value >= 200}
print(dict1)

集合推导式

需求:创建一个集合,数据为下方列表的2次方
list1 = [1,1,2]
list1 = [1,1,2]
set1 = {i ** 2 for i in list1}
print(set1) #{1,4}
注意集合有去重功能,所以只显示{1,4}

相关文章:

  • CH559L单片机ADC多通道采样数据串口打印案例
  • 2022保研夏令营/预推免记录:浙大计院直博/西湖电子直博/南大软院/厦大信院
  • windows域KCC知识点
  • 优化树莓派上的网站:免费申请SSL证书 3/4
  • 深度学习梯度下降优化算法(AdaGrad、RMSProp、AdaDelta、Adam)(MXNet)
  • 2022 最新的 Java 八股文合集来了,彻底解决各大大厂面试难题
  • 【SSM框架】Mybatis详解11(源码自取)之事务,缓存,ORM
  • Maven 基本使用及依赖管理。
  • 数组是内存的实现及栈和队列的数据结构
  • 记录:2022-9-30 打家劫舍 二叉搜索树中第K小的元素 公平锁 磁盘调度
  • 基于html宠物用品商城项目的设计与实现(学生网页设计作业源码)
  • 【Java复习】线程安全的 HashMap --- ConcurrentHashMap
  • 《文化相对论》:危机重重的世界,对话才能产生转机
  • 水溶性CuInS/ZnS 量子点 PL 550 nm--800 nm
  • Vue3和react状态管理之Redux与Pinia的使用比较
  • [译] React v16.8: 含有Hooks的版本
  • eclipse(luna)创建web工程
  • es6(二):字符串的扩展
  • JavaScript设计模式系列一:工厂模式
  • leetcode讲解--894. All Possible Full Binary Trees
  • Redis在Web项目中的应用与实践
  • TypeScript实现数据结构(一)栈,队列,链表
  • VUE es6技巧写法(持续更新中~~~)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Vue小说阅读器(仿追书神器)
  • webpack入门学习手记(二)
  • windows下使用nginx调试简介
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 将回调地狱按在地上摩擦的Promise
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #13 yum、编译安装与sed命令的使用
  • #define与typedef区别
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (4)logging(日志模块)
  • (42)STM32——LCD显示屏实验笔记
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .gitignore
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET MVC 验证码
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 反射 Reflect
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • @EnableConfigurationProperties注解使用