python基础操作

十进制转二进制、八进制、十六进制

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 = 205>>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理解

  1. *args用来将参数打包成tuple给函数体调用
  2. **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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值