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


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

    使用 键查找数据,不支持下标,数据以键值对出现,和数据顺序没有关系
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct['age'])
    新增数据
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. disct['id'] = 110 #默认添加到尾部
    3. print(disct)
    修改字典数据——通过已有的键修改数据,不然就成了添加数据
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. disct['name'] = 'Tom'
    3. print(disct)
    删除指定数据——通过指定key实现
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. del disct['name']
    3. print(disct)
    清空字典——clear()
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. disct.clear()
    3. print(disct)    #{}
    查找
    1.key值查找
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct['name'])
    2.get()
    语法:字典序列.get(key, 默认值)
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct.get('age'))
    注意:当查找的key不存在则返回第二个参数(默认值),如果省略的第二个参数,则返回None。
    如:
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct.get('id'))  #None
    3. disct = {'name':'gyq','age':18,'Gender':'boy'}
    4. print(disct.get('id',0))  #0
    key——查找字典中所有的key,返回可迭代对象
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct.keys())    #dict_keys(['name', 'age', 'Gender'])
    values——查找字典中所有的values,返回可迭代对象
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct.values()) #dict_values(['gyq', 18, 'boy'])
    items—— 查找字典中所有的键值对,返回可迭代对象
    里面的数据是元组,元组数据1是字典key,元组数据2是key对应的值
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. print(disct.items())  #dict_items([('name', 'gyq'), ('age', 18), ('Gender', 'boy')])
    for循环遍历字典的key
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. for key in disct.keys():
    3. print(key)
    for循环遍历字典的values
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. for values in disct.values():
    3. print(values)
    for循环遍历字典的元素
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. for items in disct.items():
    3. print(items)
    for循环遍历字典的键值对(拆包)
    1. disct = {'name':'gyq','age':18,'Gender':'boy'}
    2. for key,value in disct.items():
    3. print(f'{key} = {value}')

    集合

    可变类型的数据,无序
    创建集合使用{}或set(),但是如果要创建 空集合只能使用set(),因为{} 用来创建空字典
    1. s1 = {10,20,30,40}
    2. print(s1)    #{40, 10, 20, 30}
    注意:这是无序显示,所以 集合没有顺序
    集合具有 去重功能
    1. s2 = {10,10,20,30,40}
    2. print(s2)    #{40, 10, 20, 30}
    使用 set()创建集合
    1. s3 = set('gyq1234')
    2. print(s3)    #{'4', '3', '2', '1', 'y', 'q', 'g'}
    创建 空集合
    1. s4 = set()
    2. print(s4)    #set()
    add() 增加单个数据
    1. s1 = {10}
    2. s1.add(20)
    3. print(s1)
    注意:如果追加的数据是 集合已有数据,则什么都不做。
    update()  是增加序列时使用
    1. s1 = {10}
    2. s1.update([100,20,30])
    3. print(s1)
    删除数据
    remove() , 删除集合中的指定数据,如果数据不存在则报错
    1. s1 = {10,20}
    2. s1.remove(10)
    3. print(s1)
    discard()     删除集合中的指定数据,如果数据 不存在也不会报错
    1. s1 = {10,20}
    2. s1.remove(10)
    3. print(s1)
    pop() 随机删除集合中的某个数据, 并返回这个数据
    1. s1 = {10,20,30,40}
    2. del_num = s1.pop()
    3. print(del_num)
    查找数据
    in : 判断数据在集合序列
    not in : 判断数据不在集合序列
    1. s1 = {10,20,30,40}
    2. print(10 in s1 )    #True
    3. print(200 not in s1 )    #True

    公共操作

    运算符
    print(变量1 + 变量2)
    print ( 变量  * 想要复制的数量 )
    print(元素 in 变量名)
    print(元素 not in 变量名)
    公共方法
    range(start,end,step) ——配for循环使用
    1. for sum in range(1,6,2):
    2. print(sum)
    enumerate (可遍历对象,tart=0)——start参数用来设置遍历数据的下标的起始值,默认为0
    1. list1 = ['a','b','c','d','e']
    2. for i in enumerate(list1):
    3. print(i)
    注意: enumerate ()返回的结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是元迭代对象对象的数据

    数据类型转换

    tuple()——转换成元组
    set()——转换成集合,集合没有顺序,不支持下标,有自动去重功能
    list()——转换成列表
    1. list1 = [10,20,30]
    2. s1 = {10,20,30}
    3. t1 = (10,20,30)
    4. print("这是列表转元组:", tuple(list1))
    5. print("这是集合转列表:",list(s1))
    6. print("这是元组转集合:",set(t1))

    列表推导式

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

     字典推导式

    创建一个字典:字典key是1-5数字,value是这个数字的2次方
    1. dict1 = {i:i**2 for i in range(1,5)}
    2. print(dict1)
    将两个列表合并为·1一个字典
    1. list1 = ['name','age','gender']
    2. list2 = ['gyq',20,'man']
    3. dict1 = {list1[i]: list2[i] for i in range(len(list1))}
    4. print(dict1)
    注意:
    如果两个列表数据个数相同,len统计任何一个列表的长度都可以
                如果两个列表数据个数不同,len统计数据多的列表数据个数会报错;
                len统计数据少的列表数据个数不会报错。
    提取字典中目标数据——大于等于200
    1. counts = {'MBP':268,'HP':125,'DELL':201,'Lenovo':99,'acer':99}
    2. dict1 = {key:value for key, value in counts.items() if value >= 200}
    3. print(dict1)

    集合推导式

    需求:创建一个集合,数据为下方列表的2次方
    1. list1 = [1,1,2]
    2. list1 = [1,1,2]
    3. set1 = {i ** 2 for i in list1}
    4. print(set1) #{1,4}
    注意集合有去重功能,所以只显示{1,4}
  • 相关阅读:
    Java Yml格式转换为Properties
    混沌系统在图像加密中的应用(图像加密算法案例)
    uniapp:OCR识别身份证上传原图失败,问题解决
    RS232电路设计
    【深入浅出Dubbo3原理及实战】「技术大纲」深入浅出并发实战课程系列及技术指南
    R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...
    算法:只使用一个int类型变量表示日期
    .NET5.0和Quartz.NET开发的极简任务调度平台
    orb-slam3编译手册(Ubuntu20.04)
    ElasticSearch 环境安装
  • 原文地址:https://blog.csdn.net/gyqailxj/article/details/127129055