列表的 删除复制等操作:
list.remove(value) 删除遇到的第一个值
list.pop(index)就地弹出某个值
list.clear()>>None 清楚
list. reverse反转
list.sort() 排序
***
列表的复制有浅复制和深复制之别
用=直接复制,表示地址不变,用的仅仅是链接
用shadowcopy,复制的,再列表中的列表的地址不变是链接
用deepcopy才是完全自己开了一个新列表空间
随机数的选取
random模块
dandint(a,b)返回[a,b]之间的整数
choice(seq)从非空序列中随机挑选一个元素
randrange(iterable)
random.shuffle(list)就地打乱元素
sample(population,k)随机从样本中抽取K个元素形成一个新列表
元组
列表可以变,而元组不可变,读的方法与列表类似,而没有增删改
元组中有一个namedtuple(typename,field_name,verbose=False,rename=False)
命名元组,返回一个元组的子类,并定义了字段
from collections import namedtuple
point = namedtuple(‘_Point‘,[‘x‘,‘y‘])#Point为返回的类
p=Point(11,22)
Student = namedtuple(‘Student‘,‘name age‘)
Tom =Student(‘tom‘,20)
字符串
sql = "what is your name?"
sql[5] = i
sql 是可以迭代的
jion可以将可迭代对象连接起来
"string".jion(iterable)
字符串分割
split(seq=None,maxsplit=-1)
sql.split(str)以str为分割符,maxplit可以指定分割次数
partition()是将字符串分割成两部分并保留分隔符
与之类似的还有rsplit和rpartition,是从右边开始分割
杨辉三角的四种方法
基本方法
triangle = [[1],[1,1]]
n = 6
for i in range(2,n):
row = [1]
for j in range(i-1):
value = triangle[i-1][j]+triangle[i-1][j+1]
row.append(value)
row.append(1)
triangle.append(row)
print(triangle)
补零法
n = 6
newline = [1]
for i in range(1,n):
oldline = newline.copy()
oldline.append(0)
newline.clear()
for j in range(i):
newline.append(oldline[j-1]+oldline[j])
print(newline)
对称法
n = 6
triangle = []
for i in range(n):
row = [1]*(i+1)
for j in range(1,i//2+1):
row[j]=(triangle[i-1][j-1]+triangle[i-1][j])
row[-j-1]=row[j]
triangle.append(row)
print(triangle)
覆盖法
n = 6
triangle = [1]
print(triangle)
for i in range(1,6):
z = 1
for j in range(1,i):
tmp = triangle[j]+z
z =triangle[j]
triangle[j] = tmp
triangle.append(1)
print(triangle)
bytes 不可变字节序列
例如 b‘adc‘ bytes再写的时候前面得加个b
bytearray 可变字节数组
例如bytearray (b‘abc‘) bytearray得用法和list很像 比如append() remove() pop() reserve() insert() extend() clear()
ASCII码
十进制的数对应的char 和hex 因为是8个字节,最高位不取,所以一般为0~127
还有一种是utf -8
原文地址:http://blog.51cto.com/13887608/2157708