第4章 Python中表示“组”的概念与定义
一、列表
""" Python中列表是一种可以表达“组”概念的数据类型 一个列表中的元素可以是多种数据类型,甚至元素可以也为列表类型(即嵌套列表) """ from tokenize import groupskill = ["新月打击", "苍白之瀑", "月之降临", "月神冲刺"]print(f"施放技能----->{skill[2]}") #单个元素的访问 print(f"施放技能----->{skill[1:3]}") #多个访问 skill1 = ["冰霜之寒", "冰冷血脉"] print(skill + skill1) #列表的相加#相加的特殊情况 lst1 = [1, 2, 3] lst2 = [1, 3, 5] lst3 = lst1 + lst2 print(lst3) #列表的相加算法中相同元素并不会被合并,列表是有序的#世界杯分组列表表示示例 world_cup_group = [["巴西", "克罗地亚", "墨西哥", "喀麦隆"], ["西班牙", "荷兰", "智利", "澳大利亚"], ["阿根廷", "法国", "英格兰", "日本", "阿联酋"]]for i in range(len(world_cup_group)):print(f"第{i + 1}组队伍有:", end = " ")for j in range(len(world_cup_group[i])):print(world_cup_group[i][j], end = " ")print()
二、元组
""" 元组创建后是不可以被修改的,列表是可修改的 """ t = (1, 2, "abc", False) print(t[-1], t[-2], t[1])ta = (1, 2) tb = (3, 5, 6) print(ta + tb, ta * 2) ta = (1, 2, 3, 4, 5) print(ta) #并不是原始的ta被修改了,原始的ta仍在原有内存里,只是把变量名指向了新内容的内存 #ta[0] = 18 #会报错,元组类型不支持修改元素值 ta = (18, 2, 3, 4, 5) #只有新辟一块内存存储预期内容,并让原变量名指向新内存
三、序列小结
字符串、列表、元组都是序列组合,他们有共同的一些操作。
1、有序性,可以通过下标序号访问其中元素
2、同样因为有序性,也可以通过切片操作截取部分访问
3、可以进行加、乘操作
4、可以用in判断一个数据是否在此序列中
5、长度函数len()、求最大最小函数max()/min()
四、set集合
""" 集合set是无序的 因为非有序,无法通过序号和切片访问 但也可以有len(),in/not in 等操作 支持求交集,差集,合集等操作 """ s1 = {1, 1, 2, 8, 9} print(s1) #因为是无序的,所以重复元素无意义 la = [1, 2, 3, 4, 5, 6, 7, 8, 9] lb = [1, 3, 5, 7, 9] sab = set(la + lb) #用处之一可以去除相加的重复元素 print(sab) s1 = {1, 2, 3, 4, 5, 6, 7, 8, 9} s2 ={1, 3, 5, 7, 9, 11} print(s1 - s2) #求两集合差集 print(s2 - s1) print(s1 & s2) #求两集合交集 print(s1 | s2) #求两集合合集/并集
五、字典
""" 字典也是一个集合类型,非序列,key:value键值对是其最基本的概念 字典中不能有重复的key值 value值是可重复的,可以是python中任意数据类型 key值必须是不可变类型的,包括数值、字符串、元组类等。 """ dict1 = {"Q":"SKILL1", "E":"SKILL2", "W":"SKILL3", "R":"SKILL4"} print(dict1["W"]) #通过键值访问内容 dict2 = {(1,):1, "1": 2, 1: 3} print(dict2, dict2[(1,)]) dict0 = {} #空字典的表示 set0 = set() print(dict0) print(set0) print(type(dict0)) print(type(set0))