昨日内容回顾
【一】列表类型内置方法
(一)类型强制转换
-
字符串可以转换成列表 字符串中的每一个元素
-
字典 转换为列表以后是 字典的键
-
元组 转换为列表
-
集合 转换为列表 集合的去重性和无序性 ---> 一旦转换成功 这个列表就定死
(二)按照索引取值
-
正向: 从0开始
-
反向:从-1开始
-
可以取值并将取到的值位置的索引值替换掉
-
索引取值的情况下,如果没有索引的值就会报错
(三)切片
-
顾头不顾尾:range
-
[起始位置:截止位置:步长]
-
[::-1] :翻转
-
负索引取值的时候第一个起始位置要从右向左取
-
[::-2]
name = 'gdyandhyt' print(name[0:4:2]) # gy
-
从右向左开始
name = 'gdyandhyt' print(name[-1:-4:-1]) # tyh
(四)计算长度
-
语法:len(变量名)
(五)成员运算
-
可以判读当前元素是否在当前列表
-
in
-
not in
-
可以将字典的键转换为列表 用成员运算判断当前输入的用户名是否存在于当前列表中
(六)操作方法
(1)增加
-
extend(直接放列表)
-
insert(索引位置,值)
-
插入到指定索引位置上
-
-
append() 将元素默认追加到结尾
(2)查看
-
直接打印列表
-
索引取值
(3)删除
-
pop() :如果不写参数则默认删除最后位置的元素 可以将元素弹出可以用变量名接受
-
pop(索引): 直接弹出指定索引位置的元素
-
remove(值) :在列表中存在的值才能被remove
-
del 列表[索引位置]: 将从列表中按照索引位置取出来的值删除掉
(4)修改
-
直接索引取值 = 修改的新值
(七)颠倒元素
-
列表.reverse(): 将列表中的所有元素翻转
-
list(reversed(列表))
(八)对列表中的元素进行排序
-
列表.sort() : 将原来的列表进行排序 ---> 影响到的是原来的列表
-
sorted(列表):有返回值,返回值就是排序后的列表,并且原本的列表不受影响
-
有一个参数 reverse=True:将排序号的结果翻转
(九)遍历列表
-
for 循环获取列表中每一个元素
-
for + range 关键 :可以放指定区间 ---> 根据索引坐标获取列表值
-
while 列表的长度: 内部有count 根据索引指定索引对应的值
【二】字典类型内置方法
【1】定义风格
-
在一个{}里面放一个k:v键值对
【2】字典操作
(1)增加
-
有则修改,无则添加
-
字典[key] = value
-
字典.update({k:v}) ---> 更新原来的字典
-
字典.update(k=v) ---> 更新原来的字典
-
setdefault(k,v) ---> 有返回值返回值是你设置进去的键值对的值
(2)查看
-
字典[key] 取值 ---> 拿到指定键对应的值,取不到会报错
-
字典.get(key) 取值 ---> 拿到指定键对应的值,取不到的话不会报错
-
查看字典的键对 字典.keys() dict.keys 支持成员运算
-
值对 字典.values()
-
键值对 字典.items() :在列表中存在的一个个的元组 (key,value)
-
for key,value in 字典.items(): 解压赋值
(3)修改
(4)删除
-
pop() ---> 弹出最后的元素
-
del 字典[key]:把查询的键和对应的值全部删除
-
清空字典 字典.clear()
-
删除键值对 字典.popitem()
【3】遍历循环
for key in user: 拿到的值就是键
今日内容
元组内置方法
【一】元组的定义
-
在元组的内部,只有一个元素的时候 + “,”
【二】类型强制转换
-
整数类型和布尔类型不可以
print(tuple([1,2,3])) print(tuple('dream')) print(tuple({1,2,2})) print(tuple({'username':"dream"}))
【三】索引取值
num_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(num_tuple[0])
-
切片:顾头不顾尾
-
不支持根据索引修改指定的索引值
num_tuple[0] = 999
【四】计算元素个数
print(len((1,2,3))) # 3
【五】成员运算
print(4 in (1,2,3)) # False
【六】支持遍历
for i in (1,2,3,4): print(i) # 结果:将1234输出一遍 # for + range ---> 索引取值
【七】元组拼接
-
两个列表+起来 ,可以得到一个新列表,其中包括了两个列表的元素
print([1, 2, 3] + [4, 5, 6]) # [1, 2, 3, 4, 5, 6]
-
两个元组+起来,可以得到一个新元组,其中包括两个元组的的元素
print((1, 2, 3) + (4, 5, 6)) # (1, 2, 3, 4, 5, 6)
【八】* 号运算
print((1, 2, 3) * 6) # (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
布尔类型的内置方法
【一】强制类型转换
-
强制将其他类型转换为布尔类型
print(bool(0)) # False print(bool(1)) # True print(bool(2)) # True # 在python中结果为假的情况 # 布尔值false # 空值
集合类型的内置方法
【一】集合的定义
-
集合是用{}的定义的,并且每一个元素但是单独的,区分与字典的是,字典中是键值对
-
集合内部的元素不能放可变数据类型
【二】集合的特性
-
无序性
-
相对于其他类型来说
-
-
数字类型的hash值是死的
print({1, 2, 3, 4, 5, 6, 999, 55, 'a', 77, 'c', 44})
-
去重性
-
在一个集合内不会出现重复的元素
-
【三】其他类型的数据强转
-
强转的时候会沿用集合的特性,无序且去重
name = 'hanyutong' print(set(name)) # {'u', 'h', 'y', 'a', 'o', 'n', 't', 'g'} print(set({'username': "hyt", 'password': "123"})) # {'username', 'password'}
【四】集合操作
【1】添加元素
num_set = {1, 2, 3} num_set.add(999) # add的方法只能添加一个元素 print(num_set) # {1, 2, 3, 999}
num_set.update([1, 2, 3, 4]) num_set.update((4, 5, 6)) # 无论是列表还是元组添加进来之后都是以集合的形式存在 print(num_set) # {1, 2, 3, 4, 5, 6, 999}
-
把注册过的用户名全部扔到集合中
-
利用集合的去重性判断当前用户是否注册过
username_tuple = {'gdy', 'hyt'} username = input(':>>>') username_tuple.add(username)
【2】删除元素
-
删除已经存在的值
num_set = {1, 2, 3,999} num_set.remove(999) print(num_set) # {1, 2, 3}
-
remove 删除集合中不存在的值是会报错
num_set.remove(999) #直接报错 print(num_set)
-
discard 删除不存在的元素时不会报错,而是返回原来的集合
num_set.discard(999) #{1, 2, 3} print(num_set)
-
pop 在其他的数据类型可以指定参数,但是在集合中不能指定参数,默认删除左1
num_set = {1, 2, 3,999} num_set.pop() print(num_set) # {2, 3, 999}
【五】集合的运算
-
交集 : 两个集合中共有的元素
set1 = {1, 2, 3} set2 = {3, 4, 5} intersection_set = set1.intersection(set2) print(intersection_set) # 输出: {3}
-
并集:将两个集合中的元素合并到一起
set1 = {1, 2, 3} set2 = {3, 4, 5} union_set = set1.union(set2) print(union_set) # 输出: {1, 2, 3, 4, 5}
-
差集:你有但是我没有的数据
set1 = {1, 2, 3} set2 = {3, 4, 5} difference_set = set1.difference(set2) print(difference_set) # 输出: {1, 2}
-
判断两个集合是否相等
is_equal = set1 == set2 print(is_equal) # 输出: False
-
将列表转成了集合
list = ['a','b',1,'a'] num = set(list) print(num) # {'a', 'b', 1} l_new = list(s) # 再将集合转回列表 print(l_new) # 去除了重复,但是打乱了顺序 # ['b', 'a', 1]
-
针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如
l_second = [ {'name': 'lili', 'age': 18, 'sex': 'male'}, {'name': 'jack', 'age': 73, 'sex': 'male'}, {'name': 'tom', 'age': 20, 'sex': 'female'}, {'name': 'lili', 'age': 18, 'sex': 'male'}, {'name': 'lili', 'age': 18, 'sex': 'male'}, ] new_l_second = [] for dic in l_second: if dic not in new_l_second: new_l_second.append(dic) print(new_l_second) # 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重 ''' [ {'name': 'lili', 'age': 18, 'sex': 'male'}, {'name': 'jack', 'age': 73, 'sex': 'male'}, {'name': 'tom', 'age': 20, 'sex': 'female'} ] '''