#列表(list)
概念
列表是序列类型的一种扩展,十分常用
-
列表是一种序列类型,创建后可以随意被修改
创建
-
使用方括号 [] 或list() 创建,元素间用逗号 , 分隔
-
列表中各元素类型可以不同,无长度限制
-
list01 = [1,2,3,4]
-
"""
-
[] 空列表
-
list() 里面什么都没有,创建空列表
-
list(["张三","李四"])
-
"""
-
list02 = list() #[]
-
list03 = list(["张三","李四"])
-
print(list01)
-
print(list02)
-
print(list03)
-
list04 = [12.3,10,3.14e2,"张三"]
-
print(list04) #[12.3, 10, 314.0, '张三']
常用函数
#创建list
list01 = [1,2,5,7,-2,-9]
#len(列表) 统计列表中元素的个数
a = len(list01)
print(a) #6
#sum(列表) 求和
b = sum(list01)
print(b) #4
#max(列表) 最大值
c= max(list01)
print(c) #7
#min(列表) 最小值
d = min(list01)
print(d) #9
增
#创建
list01 = ["waho","迪热巴","黄昊","鹿","于晏"]
#list.insert(index,值) 根据下标进行插入数据
list01.insert(1,"幂")
print(list01) #['wahao', '幂', '迪热巴', '黄昊', '鹿', '于晏']
#list.append(值) 在末尾插入
list01.append("吴凡")
print(list01) # ['wahao', '幂', '迪热巴', '黄昊', '鹿', '于晏', '亦凡']
删
#创建
list01 = ["wahao","迪热巴","黄昊","亦凡","鹿","于晏","wahao"]
#list.pop(index) 删除指定位置的数据
list01.pop(3)
print(list01) #['wahao', '迪热巴', '黄昊', '鹿', '于晏', 'wahao']
#list.remove(值) 删除值,但是他删除的是值第一次出现的位置
list01.remove("wahao")
print(list01) #['迪热巴', '黄昊', '鹿', '于晏', 'wahao']
#list.clear() 删除所有数据
list01.clear()
print(list01) #[]
改
-
List[i] = 值(要修改的值)
#重新进行赋值
list01[3] = "幂"
print(list01) #['wahao', '迪热巴', '黄昊', '幂', '鹿', '于晏', 'wahao']
查
#创建list
list01 = [1,2,5,7,-2,-9]
#查询所有 ---直接打印列表名字
print(list01)
"""
查询单个值
利用[index]进行查询 index-->从0开始
"""
print(list01[1]) #2
"""
查询多个值
[start:stop] 左开右闭
小数在前面
正向递增 反向递减 一负一正
-6 -5 -4 -3 -2 -1
[1 2 5 7 -2 -9]
0 1 2 3 4 5
"""
print(list01[1:4]) #[2, 5, 7]
print(list01[-5:-2]) #[2, 5, 7]
print(list01[-5:4]) #[2, 5, 7]
常用方法
#list.reverse() 反转
list01 = [1,2,3,4,5,6]
list01.reverse()
print(list01) #[6, 5, 4, 3, 2, 1]
#list.copy() 拷贝
list02 = list01.copy()
print(list02)
"""
list.sort(reverse = Ture/False) 排序 默认是升序
reverse = Ture降序 reverse = False 升序
"""
list03 = [1,8,4,2,-9]
list03.sort()
print(list03) #[-9, 1, 2, 4, 8]
list03.sort(reverse=True)
print(list03) #[8, 4, 2, 1, -9]
#元组(tuple)
概念
元组是序列类型的一种扩展
-
元组是一种序列类型,一旦创建就不能被修改 不能增删改
创建
-
使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔
-
#创建
-
tuple01 = (1,2,3)
-
tuple02 = tuple() #空元组 ()
-
tuple03 = tuple((5,6,7))
-
print(tuple01)
-
print(tuple02)
-
print(tuple03)
意义
-
#创建
-
tuple02 = tuple() #空元组 ()
-
list01 = list() #[]
-
"""
-
空列表 空元组 空集合 空字典都是False
-
all()
-
"""
-
print(all([[],()])) #False
查
#创建
tuple02 = (1,2,3,4,5,6)
"""
查询所有值 直接打印元组名字
查询单个值 [index]
查询多个值 [start:stop] 左开右闭 一负一正
-6 -5 -4 -3 -2 -1
(1, 2, 3, 4, 5, 6)
0 1 2 3 4 5
"""
print(tuple02)
print(tuple02[2])
print(tuple02[1:4])
print(tuple02[-5:-2])
print(tuple02[-5:4])
运算符
#创建
Str = ("张三")
print(type(Str)) #<class 'str'>
#字符串只能存放一个值 元组可以存放多个值,加个逗号可以进行区分
tuple01 = ("张三",)
print(type(tuple01)) #<class 'tuple'>
#复制完以后把数据变成元组
print(tuple01*3) #('张三', '张三', '张三')
#字典(dict)
概念
-
映射是一种键(索引)和值(数据)的对应
"""
映射
key value
张三 18
李四 20
王五 80
"""
"""
[1,2,3,4]
索引 0 1 2 3
"""
创建
-
键值对:键是数据索引的扩展
-
字典是键值对的集合,键值对之间无序(没有索引)
-
采用大括号{}和dict()创建,键值对用冒号: 表示
-
字典类型是“映射”的体现
-
<字典变量> = {<键1>:<值1>, … , <键n>:<值n>}
#创建
dict01 = {"张三":18,"李四":20,"王五":80}
dict02 = dict()
dict03 = dict({"张三":90,"李四":20})
print(dict01) #{'张三': 18, '李四': 20, '王': 80}
print(dict02) #{}
print(dict03) #{'张三': 90, '李四': 20}
增
"""
dict01[新的key] = 新的值 添加数据
"""
dict01["小乔"] = "天魔缭乱"
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船', '元哥': '无敌时间移位', '小乔': '天魔缭乱'}
删
"""
dict.pop(key) 根据key删除一对数据
dict.clear() 清除所有数据
"""
dict01.pop("元哥")
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船'}
改
"""
只能修改值,不可以修改key
为什么:因为key是唯一的,不能重复的,避免出现重复的情况所以不能修改
怎么修改:
先根据key拿到值 dict01["孙策"]
再重新赋值
"""
dict01["孙策"] = "乘风破浪"
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '乘风破浪', '元哥': '无敌时间移位'}
查
#创建
dict01 = {"鲁班":"空中支援","花木兰":"切换形态","孙策":"开船","元哥":"无敌时间移位"}
# dict.keys() 查看所有的key(英雄)
print(dict01.keys()) #dict_keys(['鲁班', '花木兰', '孙策', '元哥'])
# dict.values() 查询所有的value(大招)
print(dict01.values()) #dict_values(['空中支援', '切换形态', '开船', '无敌时间移位'])
"""
查询单个值
1.dict[key] 利用key查询value
2.dict.get(key,默认值) 利用key查询value 如果key没有,那么就输出默认值
"""
print(dict01["花木兰"]) #切换形态
print(dict01.get("花木兰")) #切换形态
print(dict01.get("貂蝉","没有此英雄,请购买")) #没有此英雄,请购买
"""
查询所有值(包括key和value)
1.直接打印字典名
2.dict.items() 迭代方法
"""
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船', '元哥': '无敌时间移位'}
print(dict01.items()) #dict_items([('鲁班', '空中支援'), ('花木兰', '切换形态'), ('孙策', '开船'), ('元哥', '无敌时间移位')])
常用的函数和方法
"""
k in dict key在不在字典里面
如果在输出True 如果不在输出False
为什么 20 in dict0
原因是他只能判断key在不在,不能判断value在不在
"""
print("张三" in dict01) #True
print(20 in dict01) #False
"""
dict01.update(dict02) 把02中的数据更新到01中
更新是更新多个数据
是复制吗? no
但是你可以理解成添加数据
"""
#创建字典
dict01 = {"张三":20,"王五":30,"赵六":70,"李四":80}
dict02 = {"翠花":20,"光头强":10}
dict01.update(dict02)
print(dict01) #{'张三': 20, '王五': 30, '赵六': 70, '李四': 80, '翠花': 20, '光头强': 10}
print(dict02) #{'翠花': 20, '光头强': 10}
#创建字典
dict01 = {"张三":20,"王五":30,"赵六":70,"李四":80}
dict02 = {"翠花":20,"光头强":10}
"""
del 字典名[key] 删除指定位置的数据
和pop一样
dict.pop(key) 删除指定位置的数据
"""
del dict01["李四"]
print(dict01) #{'张三': 20, '王五': 30, '赵六': 70}
#set(集合)
概念
集合是多个元素的无序(没有下标)组合
集合类型与数学中的集合概念一致
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
为什么? 无序唯一
创建
-
集合用大括号 {} 表示,元素间用逗号分隔
-
建立集合类型用 {} 或 set()
-
建立空集合类型,必须使用set()
-
#创建
-
set01 = {1,2,3,4,5}
-
set02 = set() #set()
-
set03 = set({9,10,11})
-
print(set01)
-
print(set02)
-
print(set03)
-
"""
-
空列表 []
-
空元组 ()
-
空字典 {}
-
空集合 set()
-
原因是字典的创建也是{},两者冲突了
-
所以我们的空集合是set(),创建空集合的时候必须使用set()
-
"""
-
print(type({})) #<class 'dict'>
-
print(type(set())) #<class 'set'>
增
#创建
set01 = {"花木兰","貂蝉","妲己","王昭君"}
"""
set.add(数据) 添加一个数据 不也能添加已有的数据,虽然不报错,但是不显示
"""
set01.add("杨玉环")
print(set01) #{'花木兰', '王昭君', '貂蝉', '妲己', '杨玉环'}
set01.add("花木兰")
print(set01) #{'花木兰', '杨玉环', '王昭君', '妲己', '貂蝉'}
"""
set01.update(set02) 批量添加数据
把set02添加到zet01中
"""
set02 = {"嬴政","武则天"}
set01.update(set02)
print(set01) #{'花木兰', '嬴政', '杨玉环', '妲己', '王昭君', '武则天', '貂蝉'}
删
改
不可以更改数据
集合元素不可更改,不能是可变数据类型
为什么? 无序唯一
查
直接打印集合名字去查询
不能使用索引进行查询,因为我们集合是无序的
print(set01)
print(set02)
print(set03)
#基本数据类型
"""
基本数据类型会为每一个对象单独赋值,即使值是一样,也是不同的内存
>>> x = 500
>>> id(x)
1862181199440
>>> y = 500
>>> id(y)
1862181199472
除了对象等于另一个对象
"""
a =1
b = a
"""
为什么vs内存一样,idle内存却不一样
在vs是一起创建的,在idle中是先创建一个,在创建另外一个
"""
序列类型
>>> list01 = [1,2,3,4]
>>> list02 = list01
>>> id(list01)
2785429714632
>>> id(list02)
2785429714632
>>> list02 = ["张三","李四"]
>>> id(list01)
2785429714632
>>> id(list02)
2785422912456
>>> list02
['张三', '李四']
>>> list01
[1, 2, 3, 4]
>>>