Python基础_Day06

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值