| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> python基础补漏-数据类型4-元组-集合 -> 正文阅读 |
|
[开发工具]python基础补漏-数据类型4-元组-集合 |
4,元组元组是一个有序且不可变的容器,可以存放多个不同类型的元素 4.1定义 tuple = (1,2,3,4,[1,2,3,4]) #这个元组不能改变,里面的列表也不能更换,但是可以给列表增加元素 ? # 面试题 1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别? v1 = (1) print(v1) print(type(v1)) ? v2 = 1 print(v2) print(type(v2)) ? v3 = (1,) print(v3) print(type(v3)) #v1和v2都是整型,v3是元组 ? 2. 比较值 v1 = ( (1),(2),(3) ) 和 v2 = ( (1,) , (2,) , (3,),) 有什么区别? v1 = ( (1),(2),(3) ) print(v1) print(type(v1)) #区别:输出的结果不同,v1输出的结果是整型,v2输出的结果是元组 v2 = ( (1,) , (2,) , (3,),) print(v2) print(type(v2)) ? 4.2公共功能 1,相加,两个元组相加生成一个新的元组 t2 = ("赵四","刘能") + ("宋晓峰","范德彪") print(t2) # ("赵四","刘能","宋晓峰","范德彪") ? t = ("赵四","刘能") t1 = ("宋晓峰","范德彪") t3 = t1 + t print(t3) # ("赵四","刘能","宋晓峰","范德彪") 2,相乘,元组*整型,将元组中的元素再创建N份并生成一个新的列表 t = ("赵四","刘能") * 2 print(t) # ("赵四","刘能","赵四","刘能") ? t1 = ("赵四","刘能") t2 = t1 * 2 print(t1) # ("赵四","刘能") print(t2) # ("赵四","刘能","赵四","刘能") 3,获取长度 tuple = ("范德彪","刘华强",'尼古拉斯赵四',) print( len(tuple) ) 4,索引 t = ("范德彪","刘华强",'尼古拉斯赵四',) print( t[0] ) print( t[2] ) print( t[3] ) #报错,超出索引范围 5,切片 t = ("范德彪","刘华强",'尼古拉斯赵四',) print( t[0:2] ) print( t[1:] ) print( t[:-1] ) 6,步长 t = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能") print( t[1:4:2] ) print( t[0::2] ) print( t[1::2] ) print( t[4:1:-1] ) #所有的步长产生的都是新的数据 # 字符串 & 元组只能通过步长来反转 t = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能") data = t[::-1] ? # 列的两种反转方式 user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] data = user_list[::-1] ? user_list.reverse() print(user_list) 7,for循环 t = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能") for item in t: print(item) t = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能") for item in t: if item == '刘华强': continue print(name) 目前:只有 str、list、tuple 可以被for循环。 "xxx" [11,22,33] (111,22,33) # len + range + for + 索引 t = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能") for index in range(len(t)): ? ?item = t[index] ? ?print(item) 4.3,转换 只有字符串和列表可以转换为元组 data = tuple(str/list) name = "木木木" data = tuple(name) print(data) # 输出 ("木","木","木") name = ["木木",18,"python"] data = tuple(name) print(data) # 输出 ("木木",18,"pythonav") 4.4其他 tu = ( '1', '2', ('3','4') ) tu1 = tu[0] tu2 = tu[1] tu3 = tu[2][0] tu4 = tu[2][1] tu5 = tu[2][1][3] ? print(tu1) # 1 print(tu2) # 2 print(tu3) # 3 print(tu4) # 4 5,集合5.1定义 集合是一个无序,可变,不允许数据重复的容器 s1 = { 11, 22, 33, "alex" } 无序,无法通过索引取值 可变,可以添加和删除元素 不允许数据重复 注意!: 定义空集合时,只能用a = set(),不能用a = {} #定义空列表 l1 = [] l2 = list() ? #定义空元组 t1 = () t2 = tuple() ? #定义空集合 s1 = set() ? #定义空字典 d1 = {} d2 = dict() 5.2独有功能 1,添加元素 set.add(element) 2,删除元素 set.discard(element) 3,交集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} ? s3 = s1.intersection(s2) #取交集方式一 s4 = s1 & s2 #取交集方式二 print(s3,s4) 4,并集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} ? s3 = s1.union(s2) #取并集方式一 s4 = s1 | s2 #取并集方式二 print(s3,s4) 5,差集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} ? s3 = s1.difference(s2) #方式一,s1中有且s2中没有的值 s4 = s1 - s2 #方式二,s1中有且s2中没有的值 print(s3,s4) ? s5 = s2 - s1 #方式一:差集,s2中有且s1中没有的值 s6 = s2.difference(s1) #方式二:差集,s2中有且s1中没有的值 5.3公共功能 1,减,计算差集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} ? s4 = s1 - s2 s5 = s2 - s1 print(s4, s5) 2,&计算交集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} ? s4 = s1 & s2 #取交集方式二 print(s4) 3, | 计算并集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} ? s4 = s1 | s2 print(s4) 4,长度 s1 = {1,2,3,4,5} data = len(s1) ? print(data) 5,for循环 s1 = {1,2,3,4,5} for data in s1: print(data) 5.4类型转换 lis1 = [1,2,2,3,44,5] l = set(lis1) ? print(l) #{1,2,3,44,5},转换为集合会去重 5.5其他 5.5.1集合存储原理 v = set() v.add("1") 1,利用哈希函数把“1”转换成一个数值 2,对这个数值取余数 3,将元素放在哈希表的第(余数)个索引位置 5.5.2元素必须可哈希 可哈希的数据类型:int,bool,str,tuple, 不可哈希的数据类型:set,list #判断方法 v = hash("1") print(v) 5.5.3查找速度快 因存储原理特殊,集合的查找效率非常高(数据量大了才明显)。
5.5.4 对比和嵌套
data_list = [ ? ?"alex", ? ?11, ? (11, 22, 33, {"alex", "eric"}, 22), ? [11, 22, 33, 22], ? {11, 22, (True, ["中国", "北京"], "沙河"), 33} ] 注意:由于True和False本质上存储的是 1 和 0 ,而集合又不允许重复,所以在整数 0、1和False、True出现在集合中会有如下现象: v1 = {True, 1} print(v1) ?# {True} ? v2 = {1, True} print(v2) ?# {1} ? v3 = {0, False} print(v3) ?# {0} ? v4 = {False, 0} print(v4) ?# {False} None 1,节省空间 v1 = None V2 = None ... v1 = [1,2,3] v2 = [4,5,6] 2,None转换为布尔值为False |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:21:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |