查询算法

初识切片

问题:如果我想从一个列表当中,取出其中的两项来组成一个新的列表,我们可以怎么做?

比如:[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