学某个知识点的时候:
我们关系某个结构比如,字符串,列表等
1、增加 insert(索引,val) append(val) extend([])
2、删除 remove(值) pop() del[索引]
3、修改 a[索引] = val
4、查询 count(值) index(值) in
列表常见函数
aa = []
aa.append("a")#在列表末尾添加元素。
print(aa)
temps = ['to','be','or','not','to','be']
print(temps.count('to')) #统计某个元素在列表中出现的次数。
#extend:将一个列表中元素追加到另外一个列表中。
a = [1,2,3]
b = [4,5,6]
c = a.extend(b)
#index:找出列表中第一个某个值的第一个匹配项的索引位置,如果没有找到,则抛出一个异常ValueError:
knights = ['hello','world']
print(knights.index('hello'))
#insert:将某个值插入到列表中的某个位置:
chars = ['hello','world']
chars.insert(1,'nihao') #这个语句执行完后,insert把nihao插入到索引为1的位置
print(chars)
#pop方法:移除列表中最后一个元素,并且返回该元素的值:
x = [1,2,3]
temp = x.pop() # 返回3
print(x)
#remove方法:移除列表中第一个匹配的元素,不会返回这个被移除的元素的值。如果被移除的这个值不存在列表中,则会抛出一个异常ValueError。
x = [1,2,3]
x.remove(1)
#reverse:将列表中的元素反向存储。会更改原来列表中的值。
x = [1,2,3]
x.reverse()
print(x) #这时候x已经变成3,2,1了
#sort:将列表中的元素进行排序。会更改原来列表中的位置。
x = [4,2,1,5,3]
x.sort()
print(x)
#要区分sorted函数,sorted函数不会更改原来列表的位置,并且会返回一个排序后的值。
x = [4,2,1,5,3]
y = sorted(x) #对x排序的结果返回给y,并不会影响x
print(y)
#del关键字:根据下标删除元素:
a = [1,2,3]
del a[0]
print(a) # [2,3]
#使用in判断列表中是否有某个元素:
x = [1,2,3]
if 1 in x:
print(True)
else:
print(False)
#list函数:将其他的数据类型转换成列表:
a = 'hello'
print(list(a))
小案例
1、完成这样一个功能: 给定一个字符串21hkh92,4u3让你把里面的数字找出来拼成一个整数:219243
s = "21hkh92,4u3"
x = ''
for i in s:
if '0' <= i <= '9':
x +=i
print(x)
2、完成这样一个功能 计算表达式12+34-45+98=让你把这个表达式计算出来 1、如何去表示正负数 2、如何去识别一个整数,12,34,45,98 3、根据正负号去进行累加
ss = "12+34-45+98="
flag = 1 #正数
ans = 0
x = ''
for i in ss:
if '0' <= i <= '9':
x += i
else:
ans += flag * int(x)
x = ''
if i == '+':
flag = 1
elif i == '-':
flag = -1;
print(ans)
3、完成这样一个功能 百钱买百鸡、我现在有100元钱,买公鸡3元1只,母鸡5元1只,鸡仔1元3只,我需要买100只, 问你有多少种买法,其中结果只能是整数。 考点:枚举法(穷举法) 枚举公鸡只数i 枚举母鸡只数j 枚举鸡仔只数k 计算机可以在1秒,计算1亿个加减法
for i in range(0,100//3 + 1):
for j in range(0, 100//5+1):
for k in range(0,300+1,3):
if i*3 +j*5+k//3 == 100 and i+j+k ==100:
print(i,j,k)
4、完成这样一个功能 1、有个停车场,每天接受汽车和三轮车,今天有100个轮子,问你汽车最大有多少辆,最少有多少辆 2、输入的车辆总数为36,且车轮数为114,请你分别计算出三轮车和汽车的可能车数量
t = 36
j = 114
x=0;count=0
s="结果:"
while x <= t:
y = t - x
if x*3 + y*4 == j:
s = s + str(x) + "辆三轮车 " + str(y) + "辆汽车"
break
x = x + 1
print(s)
5、N个人围成一圈,从第一个人开始报数,数到 M的人出圈;再由下一个人开始报数,数到 M的人出圈;…输出依次出圈的人的编号。
s = input() #'8 5'
n, m = s.split(' ') #'8' '5'
n, m = int(n), int(m) #8 5
a = [] # [1,2,3,4,5,6,7,8]
for i in range(1,n+1):
a.append(i)
#做m-1移项操作,移动到末尾
while len(a) != 0:
for i in range(m-1):
a.append(a[0])
a.remove(a[0])
print(a[0], end=' ')
a.remove(a[0])
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com