首页 > 其他分享 >数据类型内置方法(二)

数据类型内置方法(二)

时间:2022-09-30 19:23:40浏览次数:42  
标签:内置 22 数据类型 dict user l1 print l2 方法

字典相关操作

1.类型转换
	dict()
    字典的转换一般不使用关键字,而是自己动手转
2.字典必须要掌握的操作
user_dict = {
    'username':'jason',
    'passwodr':123,
    'hobby':['read', 'music', 'run']
       }
    1.按k取值(不推荐用)
    print(user_dict['username'])  # jason
    2.get取值
    print(user_dict.get('username'))  # jason
    print(user_dict.get('age'))  # None 索引没有的不报错
    print(user_dict.get('username', '嘿嘿嘿'))  # 索引有不影响
    print(user_dict.get('age', '嘿嘿嘿'))  # 索引无显示,相当于检查索引
    3.修改值数据
    print(id(user_dict))  # 1749828784320
    user_dict['username'] = 'tony'  # 索引username对应修改为tony
    print(id(user_dict))  # 1749828784320
    print(user_dict)
    4.新增键值对
    user_dict['age'] = 18  # 索引不存在则新增键值对
    print(user_dict)  # 自动末尾添加
    5.删除数据
    del user_dict['username']
    print(user_dict)  # 键值一起删除
    res = user_dict.pop('password')
    print(user_dict)
    print(res)  # 123
    6.统计字典中键值对的个数
    print(len(user_dict))  # 3个
    7.字典三剑客
    print(user_dict.keys())  # 一次性获得字典所有的键
    print(user_dict.values())  # 一次性获得字典所有的值
    print(user_dict.items())  # 一次性获得字典所有的键值对数据
    for的特殊使用
    for i, k in user_dict.items():  # 一次性获得所有键值对,循环解压赋值
        print(i, k)
    """
        username jason
        passwodr 123
        hobby ['read', 'music', 'run']
    """
    8.补充说明
    print(dict.fromkeys(['name','pwd', 'hobby'], 123))  # 快速生成字典
    l1 = dict.fromkeys(['name', 'pwd', 'hobby'], [])
    print(l1)  # {'name': [], 'pwd': [], 'hobby': []}
    l1['name'].append('jason')
    l1['pwd'].append(123)
    l1['hobby'].append('music')
    print(l1)  # 不能一起添加
    '''当第二个公共值是可变类型的时候 
    一定要注意 通过任何一个键修改都会影响所有
    '''
    l2 = user_dict.setdefault('username', 'tony')
    print(user_dict, l2)  # 键存在不修改,结果的键是对应的值jason
    l2 = user_dict.setdefault('age', 123)
    print(user_dict, l2)  # 不存在则新增,结果是新增的值
    user_dict.popitem()  # 弹出键值对,后进先出	

元组相关操作

1.类型转换
	tuple()
   ps:支持for循环的数据类型都可以转成元组
2.元组必须掌握的方法
    l1 = (11, 22, 33, 44, 55, 66)
    1.索引取值
    print(l1[0])
    2.切片操作
    print(l1[1:5])  # (22, 33, 44, 55)
    print(l1[-5:-1])  # 默认从左到右
    3.间隔方向
    print(l1[1:5:2])  # (22, 44)
    print(l1[-1:-5:-1])  # (66, 55, 44, 33)反方向
    4.统计元组内数据的长度
    print(len(l1))  # 6个
    5.统计元组内指定数据值的个数
    print(l1.count(22))  # 1个
    6.统计元组内指定数据值的索引值
    print(l1.index(22))  # 索引值1
    7.元组内如果只有一个数据值那么逗号不能少
    8.元组内索引绑定的内存地址不能被修改(可变与不可变)
    9.元组不能新增或删除数据

集合相关操作

1.类型转换
   set()
   集合内数据必须是不可变类型(整型、浮点型、字符串、 元组)
   集合内数据也是无序的,没有索引的概念
2.集合需要掌握的办法:
	去重
   关系运算
  注意:只有遇到上述两种需求的时候才应该考虑使用集合,集合里面无序的,不能索引
3.去重
    s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
    l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
    s1 = set(l1)  # 列表转集合
    l1 = list(s1)  # 集合转列表
    print(l1)
    # 集合的去重取法保留原先数据的排列顺序
4.关系运算
	群体之间做差异化校验
    eg:两个微信账户之间,有不同的好友 有相同的好友
    s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
    l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
    s1 = set(l1)  # 列表转集合
    l1 = list(s1)  # 集合转列表
    print(l1)
    集合的去重取法保留原先数据的排列顺序
    l1 = {'jason', 'tony', 'jerry', 'oscar'}
    l2 = {'jacd', 'jason', 'tom', 'tony'}
    1.求两个人的共同好友
    print(l1 & l2)  # {'tony', 'jason'}
    2.求用户1独有的好友
    print(l1 - l2)  # {'oscar', 'jerry'}
    求用户2独有的好友
    print(l2 - l1)  # {'jacd', 'tom'}
    3.求两个人所有的好友
    print(l1 | l2)  # {'oscar', 'tom', 'jason', 'jerry', 'tony', 'jacd'}
    4.求两个人独有的好友
    print(l1 ^ l2)  # {'jerry', 'oscar', 'tom', 'jacd'}
    5.父集 子集
    print(l1 > l2)
    print(l1 < l2)

字符编码理论

1.字符编码只针对文本数据
2.计算机内部存储数据的本质  # 0 1
3.既然计算机内部只认识01 为什么我们却可以敲出人类各式各样的字符
	肯定存在一个数字跟字符的对应关系 存储该关系的地方称为>>>:字符编码本
4.字符编码发展史
	4.1.一家独大
    	计算机是由美国人发明的 为了能够让计算机识别英文
    	需要发明一个数字跟英文字母的对应关系
		ASCII码:记录了英文字母跟数字的对应关系
        	用8bit(1字节)来表示一个英文字符
            
 	4.2.群雄割据
    	中国人
        GBK码:记录了英文、中文与数字的对应关系
       	 	用至少16bit(2字节)来表示一个中文字符
            	很多生僻字还需要使用更多的字节
           英文还是用8bit(1字节)来表示
       日本人
    	  shift_JIS码:记录了英文、日文与数字的对应关系
    	韩国人
         Euc_kr码:记录了英文、韩文与数字的对应关系
  		"""
  		每个国家的计算机使用的都是自己定制的编码本		
  			不同国家的文本数据无法直接交互 会出现"乱码"
  		"""
  	4.3.天下一统
    	unicode万国码
        	 兼容所有国家语言字符
  			  起步就是两个字节来表示字符 
  		utf系列:utf8 utf16 ...
            专门用于优化unocide存储问题
            英文还是采用一个字节 中文三个字节

字符编码实操

1.针对乱码不要慌 切换编码慢慢试即可
2.编码与解码
	编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
        字符串.encode()
 	解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
        bytes类型数据.decode()
3.python2与python3差异
	python2默认的编码是ASCII
		1.文件头
        	# encoding:utf8
    	2.字符串前面加u
        	u'你好啊'
 	python3默认的编码是utf系列(unicode)

作业

1.
2.
# 去重下列列表并保留数据值原来的顺序
# 	eg: [1,2,3,2,1] 去重之后 [1,2,3]
    l1 = [2, 3, 2, 1, 2, 3, 2, 3, 4, 3, 4, 3, 2, 3, 5, 6, 5]  # 条件
    # 2.创建一个空列表用来存放索引l1的数据
    l2 = []
    for i in l1:  # 循环列表l1
        if i in l2:  # 如果得到的数字已经存在在列表l2
            continue  # 结束本次循环重新开始
        else:  # 如果不是则
            l2.append(i)  # 将获得的数字添加进列表L2
    l1 = l2  # 将l1与l2列表绑定
    print(l1)  # 输出l1 [2, 3, 1, 4, 5, 6]
3.有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
    pythons={'jason', 'oscar', 'kevin', 'ricky', 'gangdan', 'biubiu'}
    linuxs={'kermit', 'tony', 'gangdan'}
    1. 求出即报名python又报名linux课程的学员名字集合
    print(pythons & linuxs)  # {'gangdan'}
    2. 求出所有报名的学生名字集合
    # print(pythons | linuxs)
    """
    {'gangdan', 'jason', 'kevin', 'ricky', 'tony', 'biubiu', 'kermit', 'oscar'}
    """
    3. 求出只报名python课程的学员名字
    # print(pythons - linuxs)
    """
    {'kevin', 'biubiu', 'jason', 'oscar', 'ricky'}
    """
    4. 求出没有同时这两门课程的学员名字集合
    print(pythons ^ linuxs)
    """
    {'tony', 'jason', 'kermit', 'ricky', 'oscar', 'kevin', 'biubiu'}
    """

标签:内置,22,数据类型,dict,user,l1,print,l2,方法
From: https://www.cnblogs.com/zhanghong1229/p/16745895.html

相关文章

  • 数据类型的内置方法补充与字符编码
    今日内容总结字典相关操作1.类型转换dict()字典的转换一般不使用关键字,而是自己转手动2.字典必须要掌握的操作user_dict={'username':'jason',......
  • 视频如何变动漫?视频变动漫的方法分享!​
    视频如何变动漫?大家日常在刷视频的时候,是不是经常会刷到动漫类的视频呢?他们那些视频非常的漂亮和好看,一下子就能吸引我们的眼球,很多小伙伴也想制作专属于自己的动漫视频,可觉......
  • 公开访问并下载附件文件的方法
    http://221.1.215.178:38091/K3cloud/WanHuaFiles\Doc\2022\c203040a68794e98ab33034c2c0bb7c8.xlsx privateJArrayGetAttachment(Contextctx,stringFBILLTYPE,......
  • 字符编码/数据类型方法之字典/集合/元组
    今日内容详细字典相关操作元组相关操作集合相关操作字符编码理论字符编码实操练习题及答案1.数据类型字典内置方法1.类型转换 dict()字典的转换一般不使用......
  • 中文翻译日语的方法分享!这个软件值得一试!​
    中文翻译日语的方法分享!很多小伙伴也是在外贸公司上班,平常用的最多的就是英语,但是不仅仅只有英语,还有很多情况下,需要我们接触到其他语音并知道它的意思,其中日语就是比较主流......
  • PyG的安装与基本使用方法
    1新建conda环境condacreate-npygodpython=3.8condaactivatepygod2安装Pytorch并测试torch、cuda版本,以及cuda是否可用我安装的v1.12.0版本,cuda对应的选的11.6......
  • 数据类型的内置方法及字符编码理论等
    目录字典相关操作元组的相关操作集合相关操作字符编码理论字符编码实操字典相关操作类型转换dict()字典的转换一般不使用关键字而是自己动手转字典的操作方法u......
  • python数据类型·内置方法2
    今日内容概要字典相关操作元组相关操作集合相关操作字符编码(理论)字典相关操作1.类型转换 dict()字典的转换一般不使用关键字而是自己动手转2.字典必须......
  • 数据类型内置方法
    数据类型内置方法(二)数据类型内置方法之字典1.类型转换​ dict()​ 字典的转换一般不使用关键字,而是自己动手2.字典必须要掌握的操作user_dict={'username':'kiki'......
  • 数据类型内置,字符编码
    字典相关操作1.类型转换 dict() 字典的转换一般不使用关键字而是自己动手转2.字典必须要掌握的操作 user_dict={'username':'jason','password':123,......