1.听写
声明字符串
"you are very beautiful 你真漂亮"
str0 = "you are very beautiful 你真漂亮"
系统功能:
1.切割字符串[按照空白切割]
sub_list = str0.split()
2.获得字符串长度
length = len(str0)
3.在字符串中查找"e"第一次出现的位置
index = str0.find("e")
4.获取第一个"r"开始之后的字符串
提取子串--->切片 [start:stop:step]
start 和 stop都是字符对应的位置 [索引 下标]
start = str0.find("r")
sub_str = str0[start::]
5.对字符串按照utf-8编码
byte_data = str0.encode("utf-8")
6.检测字符串是否以"you"开头
res = str0.startswith("you")
7.检测字符串的内容是否全部是数字
res = str0.isdigit()
8.将字符串中每个单词的首字母设置为大写
new_str = str0.title()
str0.capitalize() 首字母大写
str0.lower() 转换为小写
str0.upper() 转化为大写
2.列表
1.常用方法
常用算法:[针对于排序和查找的]
排序算法: 冒泡排序
选择排序
插入排序
快捷查找的算法: 二分法查找
2.1列表概述
列表是一个有序容器 用于存放多个元素的
有序: 存放顺序和最终显示顺序一致
工作中常用的形式:
需要多个某一类型的数据时 使用列表
在列表中元素的特点:
添加到列表中的元素会自动为其添加一个编号 这个编号从0开始的 可以通过编号操作对应位置上的元素
[编号的别称: 索引 脚标 下标]
2.2常用方法
#1.列表的声明方式
list0 = list() #空列表:列表存在 但是没有元素
print(list0)
# 字符串转换为列表
list0 = list("abcdefg")
print(list0)
# 序列转换为列表
list0 = list([12, 34, 56])
print(list0)
# 元组转换为列表
list0 = list((23, 45, 67))
print(list0)
# 只将字典中的键存放于列表中
list0 = list({"语文":87, "数学":22})
print(list0)
# 集合排重
set0 = {45, 67, 87, 24, 45}
print(set0)
list0 = list({45, 67, 87, 24, 45})
print(list0)
# 字面量形式声明
list0 = [12, 45, 67]
print(list0)
#2.列表中的运算符操作
# 加法运算--->将两个列表的元素叠加在一起 存放到一个新的列表中
list1 = [23, 22, 12]
list2 = [90, 80, 70]
new_list = list1 + list2
print(new_list)
print(list1)
print(list2) #与原序列无关
list1 = [11, 12]
list2 = [11, 12]
print(id(list1))
print(id(list2)) #地址不同
# 将两个列表中的元素一一进行比较 > >= < <= == !=
res = list1 == list2
print(res) #True
# 乘法操作--->将列表的元素重复n次
list1 = [11, 12]
res = list1 * 3 # 生成的是新的列表
print(res)
print(list1)
#3.获得列表的元素个数
list0 = [77, 88, 66, 22, 44, 55, 66]
length = len(list0)
print(length)
#4.根据脚标操作列表中的元素 格式:序列名[脚标]
# 脚标从 [0,6] 还可以通过负值来获取 [-len(list0),-1] 获取元素
value = list0[0]
print(value)
#5.根据脚标 修改对应位置的元素
list0[0] = 99
print(list0)
#6.遍历元素
for item in list0:
print(item)
print(item)
# 通过脚标进行遍历
for i in range(length):
print(list0[i])
print(list0[i])
#7.获得列表中的最大值
max_value = max(list0)
print(max_value)
#8.不加key按照首字母的大小顺序排序
list1 = ["hello", "nice", "you", "beautiful"]
max_value = max(list1, key=len)
print(max_value)
#9.在列表中追加元素 直接影响原列表
list1.append("very")
print(list1)
#10.在指定位置添加元素
list1.insert(0, "good")
print(list1)
#11.合并其他序列: 会将序列中每一个元素合并到原列表中
list1.extend("你好")
print(list1)
list1.extend(["big", "little", "light"])
print(list1)
#12.删除列表元素
# 删除末尾元素
item = list1.pop()
print(list1)
print(item)
# 删除指定位置的元素
item = list1.pop(1)
print(item)
print(list1)
# 删除元素:如果有重复的,删除的是第一次出现的
list1.remove("you")
print(list1)
#13.获的某个元素在列表中出现的次数
num = list1.count("you")
print(num)
#14.列表中是可以存在重复元素的 去除重复的元素 只保留1个
list0 = [12, 34, 56, 32, 15, 12, 45, 34, 12]
======> [12, 34, 56, 32, 15, 45]
# 元素顺序可能会发生变化
res = set(list0)
print(res)
list2 = list(res)
print(list2)
# 声明一个空的列表 用于保存无重复元素的数据
no_empty_list = []
# 遍历原列表
for item in list0:
if item not in no_empty_list:
no_empty_list.append(item)#不存在与空列表中 才放进去
print(no_empty_list)
#15.提取子列表--->切片 [start:stop:step]
# 跳跃取值 设置步长
sub_list = list1[::2]
print(sub_list)
# 提取2-7之间元素 并将其反转
sub_list = list1[7:1:-1]
print(sub_list)
# 整体逆向
sub_list = list1[::-1]
print(sub_list)
# 系统提供了一个反转的方法
list1.reverse()
print(list1)
#对列表中的元素进行排序 将数据升序或者降序 默认是升序的
list0 = [34, 56, 19, 71, 27, 85, 63]
list0.sort()
print(list0)
# 降序
list0.sort(reverse=True) #reverse控制升序降序,默认是升序,值为False
print(list0)
# 默认的排序是根据大小进行排序的
list0 = ['you', 'little', 'big','very', 'beautiful']
list0.sort()
print(list0)
# 按照字符串长度进行排序
list0.sort(key=len, reverse=True)
print(list0)
2.3二维列表
列表中的元素还是列表
[[],[],[],[]]
元素的获取 和 遍历
list0 = [[12, 34],[98, 72, 51],[99, 88, 77, 66],[22, 55, 33]]
res = list0[0]
print(res) #[12, 34]
#获得12这个数据
value = res[0]
print(value)
#合并成1步
value = list0[0][0]
print(value)
#遍历二维数组: 双层循环进行遍历 外层循环遍历外层列表 内层循环遍历内部列表
for item in list0:
print(item)
for value in item:
print(value)
2.4排序算法
以升序为例
冒泡排序:
规则: 将列表中的元素每一次从左到右取元素两两进行比较 如果前者>后者 两者交换位置
for out in range(1, len(list)):
#内层控制列表的遍历
for i in range(len(list) - out):
if list[i] > list[i + 1]:
list[i], list[i + 1] = list[i + 1], list[i]
print(list)
选择排序:
规则:第一次遍历:
取第一个位置的元素与之后每一个位置的元素进行比较 -- 获得最小值
第二次遍历:
取第二个位置的元素与之后每一个位置的元素进行比较 -- 获得次小值
...
排序结束
#外层次数
for out in range(0, len(list0) -1 ):
#内层遍历
for i in range(out + 1, len(list0)):
if list0[out] > list0[i]
list0[out], list0[i] = list0[i], list0[out]
print(list0)
插入排序:
部分有序的效果
规则:第一次遍历
从脚标为1的元素 向前 两两元素进行比较 如果后者 < 前者 交换位置
第二次遍历
从脚标为2的元素 向前 两两元素进行比较 如果后者 < 前者 交换位置
第三次遍历
从脚标为3的元素 向前 两两元素进行比较 如果后者 < 前者 交换位置
...
排序结束
for out in range(1, len(list0)):
for i in range(out, 0, -1):
if list0[i] < list0[i - 1]:
list0[i], list0[i - 1] = list0[i - 1], list0[i]
else:
break #因为插入排序从后向前 导致部分有序 比较的时候不满足上面条件 代表这一次遍历顺序已经拍好了 终止这一次遍历
print(list0)