1.循环里面套用递归,当递归执行return时,只会退出当前递归层

2.不能一边遍历list 一边pop


解决办法:倒序遍历解决或者创建新的列表去存储
3.sqrt求出来的始终是小数形式,注意题目要求的结果有可能是整型
你直接sqrt就提交,那不直接相当于没做了,填空题很容易丢分。

4.python的递归是有深度限制的,默认是1000
你在尝试递归的时候可以试着试验范围内的大数,如果报深度超了 就自己设置深度sys.setrecursionlimit()
5.列表的两种格式

6.set集合在迭代的时候不能一边遍历一边赋值
-解决方法要不就是新加一个变量去代替要不就是将set变为list(set())





7.sys加快输入(这个很有用,一般对于那些限制短时间完成的,你使用这个前缀一般是比普通的数据读入快的)
在每次代码之前加入
import sys
input=sys.stdin.readline
》特殊情况
对于输入的数字。int() 和 split() 会忽略换行符,所以数字输入通常不用手动处理。
对于输入的字符串,sys.stdin.readline 返回的字符串末尾带换行符(\n),而 input() 会自动去掉。所以需要专门处理

8.二维矩阵赋值
a=[[for _ in range(n)] for _ in range(m)]-----由a=[0 for _ in range(m)]--->[0,0,0,0,0]推广而来
---[[xx],[xx],[xx]]
a=[[0]*N for i in range(0,N)]
#s=[[0]*N for i in range(0,N)]
print(a)
for i in range(1,n+1):
rows = [0]
rows.extend(list(map(int,input().split())))
for j in range(1,m+1):
a[i][j]=rows[j]
9.input的各个输入窍门
input()---int(input())
n,m=map(int,input().split())
list=list(map(int,input().split()))
list[1:n+1]=list(map(int,input().split()))
*
list[1:n+1]
:表示列表list
的第1
个到第n
个位置(不包括第n+1
个位置)
10.list的小技巧(必看)
》list的min,max,sum,count方法
》
》添加元素
方法 | 功能 | 添加方式 | 示例 |
---|---|---|---|
append |
添加单个元素到列表末尾 | 将整个对象作为单个元素添加 | [1, 2, 3].append([4, 5]) → [1, 2, 3, [4, 5]] |
extend |
添加可迭代对象的所有元素到列表末尾 | 将可迭代对象的元素逐个添加 | [1, 2, 3].extend([4, 5]) → |
insert(i, x):在索引 i 插入元素 x。
a = [1, 2, 3]
a.insert(1, 5)
print(a) # [1, 5, 2, 3]
》删除元素
-
remove(x):删除第一个值为 x的元素,没找到会抛 ValueError
a = [1, 2, 3, 2] a.remove(2) print(a) # [1, 3, 2]
-
pop([i]):删除并返回索引 i的元素,默认最后一个。
a = [1, 2, 3] x = a.pop(1) print(x) # 2 print(a) # [1, 3]
-
clear():清空列表。
a = [1, 2, 3] a.clear() print(a) # []
》查找元素
-
index(x[, start[, end]]):返回第一个 x 的索引,没找到抛 ValueError
a = [1, 2, 3, 2] print(a.index(2)) # 1 print(a.index(2, 2)) # 3(从索引 2 开始找)
-
count(x):统计 x出现的次数。
a = [1, 2, 2, 3] print(a.count(2)) # 2
》排序和翻转
-
sort(key=None, reverse=False):原地排序(前面讲过)。
a = [3, 1, 2] a.sort() print(a) # [1, 2, 3]
-
reverse():反转列表。
a = [1, 2, 3] a.reverse() print(a) # [3, 2, 1]
》复制
-
copy():返回列表的浅拷贝。
a = [1, 2, 3] b = a.copy() b[0] = 4 print(a) # [1, 2, 3] print(b) # [4, 2, 3]