Python
- 字符创截取包头不包尾
s = 'helloword'
# 截取[0:3],不包括3
s[0:3]
-
zip函数的使用
把迭代对象进行打包输出,以迭代对象中的最小长度为准
s = ['123','456','789']
mt = zip(*s)
for item in mt:
print(item)
('1', '4', '7')
('2', '5', '8')
('3', '6', '9')
- 字符串取反
s = 'asdf'
s[::-1]
'fdsa'
- 列表可以相加
s = ['123']
b = ['456']
d = '456'
## 第一种加和方法
s+b = ['123', '456']
## 第二种加和方法
s.append(d)
s = ['123', '456']
e = '789'
## 列表和字符串也可以相加
s += e
s = ['123', '456', '7', '8', '9']
- collections模块
- 列表打印
s
Out[5]: [['a', 1], ['b', 2], ['c', 3]]
for c , l in s:
print(c,l)
a 1
b 2
c 3
for item in s:
print(item)
['a', 1]
['b', 2]
['c', 3]
- 字符串中用变量
name = 'zs'
print('my name is ' + name)
print('my name is %s'%(name))
print('my name is {myname}'.format(myname = name))
age = 25
print("my age is " + str(age))
print("my age is %d" %(age))
print("my age is {age}".format(age = age))
money = 122.25
print("my money is " + str(money))
print("my money is %f" %(money) )
print("my money is {money}".format(money = money))
print("my money is %.2f" %(money) )
结果如下:
################################################################################
my name is zs
my name is zs
my name is zs
my age is 25
my age is 25
my age is 25
my money is 122.25
my money is 122.250000
my money is 122.25
my money is 122.25
-
2进制,8进制等函数
binary 二进制的
octal 八进制的
hexadecimal 十六进制的
decimal 十进制的将其他进制的数转换成十进制要首先去掉前缀,然后用**int(s,进制数)**进行转换
#N = 16
#print('2进制为',bin(N))
#print('8进制为',oct(N))
#print('16进制为',hex(N))
2进制为 0b10000
8进制为 0o20
16进制为 0x10
##执行以下命令
s = bin(2)
int(s[2:4],2)
- 初始化一个长度确定的空列表
a = [0] *4
a
Out[27]: [0, 0, 0, 0]
b = list(range(4))
b
Out[29]: [0, 1, 2, 3]
- typing模块
from typing import List
# typing是用来表示输入数据的数据结构,输出数据的数据结构
- 创建二维数组
#正确做法1
DP = [([0] * n) for i in range(n)]
# 正确做法2
DP = [[0]*n,[0]*n,...,[0]*n]
# 错误做法 (why:用下面这种方法实际上是将一个列表复制四份,所以一动都动了)
dp = [[0] * N ] * N