zoukankan      html  css  js  c++  java
  • 列表元祖

    列表

    列表常用功能  可以通过dir(list) 查看

    >>> dir(list)
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
    • 创建列表
      >>> new_list = ['panda','pig','dog']
      >>> new_list = list(['panda','pig','dog'])
    • 索引   
      >> new_list[2]  
      'dog'
      >> new_list[-1]
      'dog'
    • 切片,分片
      >> new_list[0:3]
      ['panda','pig','dog']
      >>> l= [x for x in range(0,10,2)]
      >>> l
      [0, 2, 4, 6, 8]
      >>> l[0:3]
      [0, 2, 4]
      >>> l[::2]   #设置步长
      [0, 4, 8]
      >>> l[::-2]  #步长可以是负数,改变方向
      [8, 4, 0]
    • 追加   一个元素
      >>> new_list.append('cat')
      >>> new_list
      ['panda', 'pig', 'dog', 'cat']
    • 扩展   添加一个列表进来
      >>> l = ['aaa', 'bbb']
      >>> l.extend(['ccc','ddd'])  #extend([列表])
      >>> l
      ['aaa', 'bbb', 'ccc', 'ddd']
      >>> l.extend('efg')
      >>> l
      ['aaa', 'bbb', 'ccc', 'ddd', 'e', 'f', 'g']
    • 插入 
      >>> new_list.insert(1,'rabbit')  # 指定 索引 和 哪个元素
      >>> new_list
      ['panda', 'rabbit', 'pig', 'dog', 'cat']
    • 删除   
      >>> del new_list[1]     # del语句 指定索引
      >>> new_list
      ['panda', 'pig', 'dog', 'cat']
      
      >>> new_list.remove('dog')   #remove()方法 指定元素
      >>> new_list
      ['panda', 'pig', 'cat']
      
      >>> new_list.pop()   #pop()方法  删除最后一个元素
      'cat'
      >>> new_list
      ['panda', 'pig']
      >>> new_list.pop(1)   # pop()方法 指定索引 删除指定元素
      'pig'
      >>> new_list
      ['panda']

      判断用del还是pop:

      如果要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果在删除元素后还能继续使用它,就使用方法pop

    • 统计    count() 方法 指定元素
    • 下标     index()方法 指定元素 l.index('a')   l.index('a',1,10)范围
    • 排序     sort() 方法 按字母排序   l.sort(reverse=True)     倒序
    • 翻转     reverse()方法 按元素倒序
    • 长度     len(list)  
    • 循环
      #   遍历索引和元素
      >>> test = [111,222,333]
      >>> for i in range(len(test)):
      ...     print(i,test[i])
      0 111
      1 222
      2 333
      
      #  enumerate()
      >>> for index,item in enumerate(test):
      ...     print(index,item)
      0 111
      1 222
      2 333
      >>> for index,item in enumerate(test,1):
      ...     print(index,item)
      1 111
      2 222
      3 333
    • 拷贝   list2 = list1[:] 

    列表推导式

    >>> d={'a':'11','b':'22','c':'33'}
    >>> [k+' '+v for k,v in d.items()]
    ['a 11', 'b 22', 'c 33']
    
    #条件过滤
    >>> [x*x for x in range(1,10) if x%2==0]
    [4, 16, 36, 64]
    
    >>> L = ['Hello', 'World', 12,'Apple',None]
    >>> [x.lower() for x in L if isinstance(x,str)]
    ['hello', 'world', 'apple']
    
    多层表达式
    >>> [m + n for m in 'ABC' for n in '123']
    ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
    
    #打印对称的三位数
    print [100*x+10*y+z for x in range(1,10) for y in range(10) for z in range(10) if x==z]

    元祖

    特性 :元祖一旦创建便不可修改, 但是可以给存储元祖的变量重新赋值

    创建元祖

    >>> t = ('banana','apple','orange')
    >>> t = tuple(('banana','apple','orange'))

    注意:单个元素的元祖,在元素后要加一个逗号

    >>> t=(1,)
    >>> type(t)
    <class 'tuple'>
    >>> t=1, >>> type(t) <class 'tuple'>

    元祖的元素不可被修改

    元祖的元素的元素可以被修改

    >>> t=(1,2,{'k1':'v1'})

    >>> t[2] = 333
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
    >>> t[2]['k1']=333
    >>> t
    (1, 2, {'k1': 333})

    tuple只有 count()  index()  两个方法

    >>> dir(tuple)
    ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

    常用操作有:

    • 切片
      >>> t=(1,2,3)>>> t=t[:2]+(4,)+t[2:]
      >>> t
      (1, 2, 4, 3)
    • 索引   t[0]
    • 循环  
    • 长度
    • 删除 del  t1
  • 相关阅读:
    Mini2440裸机开发之MMU
    Mini2440裸机开发之IIC
    Mini2440裸机开发之SPI
    Mini2440裸机开发之存储器控制器
    Mini2440裸机开发之模数转换开发
    Mini2440裸机开发之LCD编程(GB2312、ASCII字库制作)
    Python pandas df.iloc[:, 0] 取确定列值作双轴图
    python plot 画双坐标轴 设置百分比展示 和字体等细节
    python Sqlserver数据库画双轴图
    windows下Idea中用Python访问oracle数据库的方法
  • 原文地址:https://www.cnblogs.com/xiaobaozi-95/p/8718510.html
Copyright © 2011-2022 走看看