美文网首页
2019-10-10-2

2019-10-10-2

作者: jxc1 | 来源:发表于2019-10-11 09:45 被阅读0次

    数据结构

    1.列表

    • 方法大赏
      list.append(x)
      list.insert(i,x)
      list.remove(x) 移除第一个x,没有会抛出异常
      list.clear()
      list.pop([i]) 返回的是弹出的元素
      list.index(x[,start[,stop]])
      list.count(x)
      list.extend(itereble) 使用可迭代对象中的所有元素来扩展列表
      list.sort(key=None,reverse=False)
      list.reverse()
      list.copy() 返回列表的浅拷贝

    • 列表作为栈使用十分高效,作为队列十分低效
      可以用deque实现队列

    • 列表推导式
      [表达式 零个或多个for和if语句 ] 得出一个新列表,各语句与表达式之间空格隔开
      [x for x in range(10) if x%2==0]
      =》[0,2,4,6,8]
      [(x,y) for x in [1,2,3] for y in [3,4,2] if x!=y]
      =>[(1,3),(1,4),(2,3),(2,4),(3,4),(3,2)]
      列表推导式可以使用复杂的表达式和嵌套函数
      from math import pi
      [str(round(pi,i)) for i in range(1,6)]
      ['3.1', '3.14', '3.142', '3.1416', '3.14159']

    嵌套的列表推导式

    matrix=[
      [1,2,3],
      [4,5,6],
      [7,8,9]
    ]
    #交换行列
    [[row[i] for row in matrix] for i in range(4)]
    #for i in range(4)相当于外层循环
    

    zip函数,创建一个迭代器,实现行列交换,但数组中的每个元素都是元组

    2. del 语句

    a=[1,2,3]
    del a[0]
    del a[1:]
    del a[0:1]
    del a 删除a变量

    3.元组和序列

    • tuple,元组
      tuple1=1,2,3
      t=(1)==>得到的是1,不是(1),通过t=1,来获得一个元素的元组
      一旦初始化就不能修改,但是可以让元组中的元素是可变对象,比如列表、字典。
    t1=1,2,3
    t2=t1,4
    #t2是((1,2,3),4)
    x,y,z=t1
    

    4.集合

    • 不重复元素组成的无序的集,基本用法包括成员检测和消除重复元素。
      创建:a=set('1234567')
      a={1,2,3,4,5,6,7}
      创建空集合:不能用a={}
      用set创建的集合是可变的,frozenset不可变。
      传入set([iterable])的参数必须是可迭代的
      集合也支持列表推导式

    相关文章

      网友评论

          本文标题:2019-10-10-2

          本文链接:https://www.haomeiwen.com/subject/mizopctx.html