算法刷题笔记:
notes:
python 输入多行的方式
方式1:
import sys
lines=sys.stdin.readlines()
方式2:
while True:
line=input()
if line =="":
break
数据类型转换的方式:
a=["1","2"]
b=map(int,a)
print(b)
二进制转10进制
ret=int('0100',2)
List相关:
二维数组转置
a=[[1,2,3],[4,5,6]]
aT=list(map(list,zip(*a)))#a的转置
INT类型数据
与或非异或
- &:按位与
- |:按位或
- ~:取反
- ^:异或
a=4
b=5
print(a&b)
print(a|b)
print(~a)
print(a^b)
list 操作
list.insert(idx,obj)
ret=[]
ret.insert(2,"123")
list.index(obj)
ret=[1,2,3,4,5]
idx=ret.index(2)
idx2=ret.index(0)#没有则抛出异常
list.pop取元素的位置
l=[1,2,3,4,5,6]
x=l.pop()#默认是取出最后一个元素
x=l.pop(0)# 取出第一个元素需要自己设置
list.sort 列表排序
l=[1,2,4,67,8,3]
l.sort()#不会占用新的空间
sorted(l)#会产生新的列表,占用新的空间
print(l)
enumerate函数
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
enumerate(迭代对象)
filter 过滤器
a=[1,2,-1,-3,-4]
filter(lambda: x:False if x<0 else True,a)
str相关
变小写字符
是否是数字、字母
s.isalnum()
s.lower()
字符串计数
s="12344"
s.count('4')
反转
a=[1,2,3,4]
b=reversed(a)
print(b)
产生1到n的数
nlist=range(1,n+1)
排列 组合
#排列
from itertools import permutations
permutations([1,2,3])
#组合
from itertools import combinations
combinations([1,2,3],2)
容器
计数器
from collections import Counter
l=[1,1,2,3,4]
dic=Counter(l)
字符和数字转换
chr(97)
ord('a')
集合
判断是否是子集
a=set(1)
b=set([1,2,3])
a.issubset(b)
#/ 在python2中是向下取整