列表, 元组,以及字符串等字符结构以及杨辉三角的四种写法

列表的 删除复制等操作:
            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

猜你喜欢

转载自blog.51cto.com/13887608/2157708