文章目录
十进制转二进制、八进制、十六进制
bin(5) # '0b101'
oct(5) # '0o5'
hex(5) # '0x5'
二进制/八进制/十六进制 转 十进制
int('110',2) # 6
int('110',8) # 64+8=72
int('110', 16) # 16*16+16=272
整数转整数列表
eg. 123 => [1, 2, 3]
a = 123
b = str(a) #'123'
c = list(b) #['1','2','3']
d = list(map(int,c)) #[1, 2, 3]
整数列表转整数
eg. [1,2,3] => 123
a = [1,2,3]
b = list(map(str,a)) # ['1', '2', '3']
c = ''.join(b) # '123'
d = int(c) # 123
与、非、或、异或、位移
与 | 非 | 或 | 异或 | 左移 | 右移 |
---|---|---|---|---|---|
& | ~ | | | ^ | <<;相当于乘2^k | >>;相当于整除2^k |
5&3=1 (101) | (011) = (001) | ~5=6 见下面的解释 | 5|3=7 (101) | (011) = (111) | 5^3=6 (101) | (011) = (110) | 5<<2 = 20 | 5>>1 = 2 |
计算机中是以补码的形式来进行计算的,5的是正数,补码等于原码:0000 0000 0000 0000 0000 0000 0000 0101
, 取非后:1111 1111 1111 1111 1111 1111 1111 1010
, 计算机运算的时候是以补码的形式,但是显示到终端上还是以原码的形式,要把结果再转化回原码(补码的补码,对于负数取补就是取反后加1):1000 0000 0000 0000 0000 0000 0000 0110
, 也就是-6
。
将ascii码转换为对应字母
chr(97) #'a'
将字母转成ascii码
ord('a') # 97
枚举 enumerate
numbers=[0,0,3,4]
for i,num in enumerate(numbers):
print(i, num)
0 0
1 0
2 3
3 4
分别是index, 和值
eval()
输入加减乘除的字符串,得到运算结果。
eval('2+3/6-9*4')
# 得到 -33.5
全排列 itertools.permutations
from itertools import *
s= ['a','b','c']
for e in permutations(s):
print(e)
(‘a’, ‘b’, ‘c’)
(‘a’, ‘c’, ‘b’)
(‘b’, ‘a’, ‘c’)
(‘b’, ‘c’, ‘a’)
(‘c’, ‘a’, ‘b’)
(‘c’, ‘b’, ‘a’)
判断字典的值是否全0:all()
all(value == 0 for value in your_dict.values())
numpy里针对矩阵的操作
- 构建矩阵:np.matrix()
- 计算行列式:np.linalg.det()
- 计算特征根:np.linalg.eig()
- 计算逆:np.linalg.inv()
- 计算转置:a.T
lambda
>>> f = lambda x, y, z: x*y*z
>>> f(2,3,4)
24
>>> (lambda x, y: x if x>y else y)(1, 2)
2
>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
>>> list(map(lambda x, y: x+y, a, b))
[6, 8, 10, 12]
filter
def is_odd(n):
return n%2 == 1
lst1 = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
>>> list(filter(lambda x: x%2==0, [1,2,3,4,5,6]))
[2, 4, 6]
在python中如何执行cmd命令
os.system(command)
请描述对于*args/**kwargs理解
- *args用来将参数打包成tuple给函数体调用
- **kwargs用来将参数打包成dict给函数体调用
def funA(x,y,*args,**kwargs):
print(x,y,args,kwargs)
funA(1,2,3,4,5,a=2,b=7)
# 输出:1,2,(3,4,5),{‘a’:2,”b”:7}
拓展数组维度、复制数组
希望将[1,2,3] 变为[[1,2,3],[1,2,3],[1,2,3]]。如果直接np.repeat:
np.repeat(a,3)
Out[24]: array([1, 1, 1, 2, 2, 2, 3, 3, 3]) #shape: (9,)
应该先用np.expand_dims拓展维度,再np.repeat
import numpy as np
a=[1,2,3]
target = [[1,2,3],[1,2,3],[1,2,3]]
b = np.expand_dims(a, axis = 0) # shape:(1,3)
c = np.repeat(b,3, axis =0) # shape: (3,3)
c==target
无重复提取列表中所有元素
用set()函数
a=[1,2,3]
set(a) # {1,2,3}