都是刷题和项目中遇到的,持续更新,总结下来
一、基本语法
除法+向下取整
a // 2 # 等同于int(a / 2)
平方
a ** 2
创建全0列表/字符串
arr = [0] * 10
arr = '0' * 10
swap交换两个变量的值
a, b = b, a
二、字符串
字符和ASCII码之间的转换
ascii = ord(ch)
ch = chr(ascii)
字符串分割
arr = s.split(', ')
字符串拼接
res = ', '.join(arr)
三、列表list
list深拷贝
a = list(b)
a = b.copy()
list反转
arr.reverse()
遍历list的每个item
for num in nums:
for i in range(0, len(nums)):
反向遍历
for j in range(l - 1, -1, -1):
对list排序
a.sort() # 倒序需加上reverse=True
b = sorted(a) # 倒序需加上reverse=True
删除list中最后一个元素
arr.pop() # O(1)
去重/创建set
nums_no_duplicate = set(nums_duplicate) # set是哈希表实现的
获取list中的最后一个元素
arr[-1] # 切片?
使用切片复制子list
sub_arr = arr[1:4] # 复制下标为 1 到 3 的子集(左闭右开)
快速对list中的元素进行格式转换
b = [str(x) for x in a]
条件复制
b = [x for x in nums if x < 3]
创建二维数组
mat = []
for _ in range(row_n):
row = [0] * col_n # 一行
mat.append(row)
四、字典dict
判断dict中key是否存在
if k not in d:
删除dict中的某个k-v
del d[key] # O(1)
遍历dict中的keys
for k in d.keys():
遍历dict中的k-v对
for k, v in d.items():
五、数学函数
获取int随机数
random.randint(a, b) #闭区间
获取[0,1)随机浮点数
random.random()
随机获取list中的一个元素
random.choice(arr)
获取最大、最小值
max(arr)
min(arr)
向上/下取整、四舍五入
math.ceil(a)
math.floor(a)
round(a)
获取当前时间
time.time() # 秒级