查询算法
初识切片
问题:如果我想从一个列表当中,取出其中的两项来组成一个新的列表,我们可以怎么做?
比如:[1,2,3,4] ,从这个列表当中取出2,3,并让它们组成一个新的列表[2,3]
问题:如果我想从一个列表当中,取出其中的两项来组成一个新的列表,我们可以怎么做?
#原始列表
list_1=[1,2,3,4]
#新建一个空列表,用于存储
list_2=[]
#利用索引,以及append方法来进行取出
list_2.append(list_1[1])
list_2.append(list_1[2])
#得到结果
print(list_2)

我们可以有更加方便快捷的方式,使用切片
我们可以有更加方便快捷的方式,使用切片
list_1=[1,2,3,4]
list_2=list_1[1:3]
print(list_2)

切片的规则
切片的规则
切片的规则
list=[1,2,3]
print(list[0,10])

我们发现,程序并没有报错,而是可以正常运行,再一次印证了切片的强大之处
切片进阶
切片进阶
list[start_index:stop_index:step]
start_index:起始索引
stop_index:终止索引
step:步长
切片进阶
list=[1,2,3,4,5]
#倒序打印
print(list[::-1])
#其他运行结果
print(list[::2])
print(list[1:4:2])
print(list[::-2])

逆序算法
string="123456"
print(string[::-1])
利用切片实现逆序算法

基础查询
基础查询
A=“GFUDFASDFASDGADFAE"
B=”FAS“
查询A中是否有字符串B
问题:
基础查询
a="GFUDFASDFASDGADFAE"
b="FAS"
for i in range(len(a)):
if a[i:i+3]==b:
print("找到了")
else:
print("没找到")

优化查询
优化查询
- 打印信息不够丰富
- 循环的浪费
- 如何计算出打印的次数
优化查询
a="GFUDFASDFASDGADFAE"
b="FAS"
number=0
for i in range(len(a)):
if a[i:i+3]==b:
number+=1
print("找到了在索引",i,"的位置")
print("找到了",number,"次")

综合练习
综合练习
现有6个优秀学生,分别是["好好","学学","天天","上上","雷雷","奥奥"],请使用切片功能选择3个偶数位置的学生,好好、天天、雷雷,并打印出来。
综合练习
现有两个字符串 A=ZCRYNJDASOMWYENDIOPYEMMEYCSYENYYMENPYN B=YEN
请说出B字符串在A字符串中出现了多少次
查询算法
By yang he
查询算法
- 241