zoukankan      html  css  js  c++  java
  • python之list

    1.python列表

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推

    序列都可以进行的操作包括索引,切片,加,乘,检查成员。

    此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现

    列表的数据项不需要具有相同的类型

    >>> l1 = [1,'name','python',88]   #创建列表
    >>> type(l1)    #查看是否为列表类型
    <class 'list'>
    >>> print(l1[2])  #索引列表元素,从0开始,显示第三个元素也就索引2
    python
    >>> print(l1[-1])  #索引最后一个元素
    88
    >>> print(l1[1:3])  #元素切片,去序列1到3的值,但不包括3
    ['name', 'python']
    >>> print(l1[-3:-1]) #取最后三个元素,但不包括最后一个
    ['name', 'python']
    >>> print(l1[-3:])   #去最后三个元素
    ['name', 'python', 88]
    >>> print(l1[:])    #去索引值,实际省略了前面的0
    [1, 'name', 'python', 88]
    
    >>> l2 = [l1[2],"very good"]  #索引元素创建新列表
    >>> print(l2)
    ['python', 'very good']   
    >>> l2+[1,2,3,4,5]   #链接列表
    ['python', 'very good', 1, 2, 3, 4, 5]
    
    列表是可变的,它允许修改元素:
    >>> l3 = [1,2,3]
    >>> l3[1]=255    #修改第二个元素为255
    >>> print(l3)
    [1, 255, 3]
    也可以切片赋值清空列表:
    >>> l4=['a','b','c','d','e']   
    >>> print(l4)
    ['a', 'b', 'c', 'd', 'e']
    >>> l4[1:4]=['B','C','D']   #修改索引1-4但不包括4的值
    >>> print(l4)
    ['a', 'B', 'C', 'D', 'e']
    >>> l4[1:4]=[]    #清空1-4索引的值,不包括4
    >>>del l4[1:4]  #也可以使用del删除列表中的元素
    >>> print(l4)
    ['a', 'e']
    >>> l4[0:]=[]    #清空列表,但列表对象还在,只是为空
    >>>del l4     #删除列表,会把整个列表对象删除
    >>> print(l4)
    []
    
    列表允许嵌套列表或元组,字典:
    >>> l5 = ['a','b','c']
    >>> l6 = [1,2,3]
    >>> l7 = [l5,l6]   #使用列表生成嵌套列表
    >>> l7
    [['a', 'b', 'c'], [1, 2, 3]]
    >>> l7[0]     #就是列表了 
    ['a', 'b', 'c']
    >>> l7[1]
    [1, 2, 3]
    >>> l7[0][1]  #嵌套取值,先去列表本身的第1个索引,然后第1个索引元素是列表,可以再索引列表中第2个元素。
    'b'
    >>> l7[1][1]
    2

    2、列表基本操作符

    len()获取个数,(+)组合操作,(*)重复操作,(in)判断操作

    >>> l7 =[1,2,3,4,5,6]
    >>> len(l7)   #列表元素个数
    6
    >>> l8 =[1,2,3]+[4,5,6]  #组合列表
    >>> l8
    [1, 2, 3, 4, 5, 6]
    >>> l9=l7*3   #重复列表元素
    >>> l9
    [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
    >>> 3 in l9    #元素是否在列表中
    True
    >>> for i in l7:print(i)  #迭代,循环列表元素
    ... 
    1
    2
    3
    4
    5
    6

    3、python列表函数

    cmp,len,max,min,list

    #cmp判断字符在ASCII码中位置做比较,如a<b返回-1,a>b返回1,a=b返回0
    In [5]: cmp('a','b')
    Out[5]: -1
    In [6]: ord('a')
    Out[6]: 97
    In [7]: ord('b')
    Out[7]: 98
    In [9]: cmp('b','a')
    Out[9]: 1
    In [10]: cmp('a','a')
    Out[10]: 0
    #注意:在python3中已经取消cmp函数,使用operator模块代替,在文件中操作需要导入模块
    >>> list1 = [1,2,3,4]
    >>> len(list1)    #获取列表元素个数
    4
    >>> max(list1)  #获取列表元素最大值,如果为字符串则按ascii码表最大值算
    4
    >>> min(list1)   #获取列表元素最小值
    1
    >>> tup1 = ('hello','python')
    >>> list(tup1)    #将元组转换为列表
    ['hello', 'python']
    >>> list2 = list(tup1)
    >>> type(list2)
    <class 'list'>
    >>> list2
    ['hello', 'python']

    4、python列表方法

    >>> list1
    [1, 2, 3, 4]
    >>> list1.append('one')   #在列表最后添加一个对象,可以是字符串,列表,元组等
    >>> print(list1)
    [1, 2, 3, 4, 'one']
    >>> list1.append([2,2])
    >>> print(list1)
    [1, 2, 3, 4, 'one', [2, 2]]
    
    >>> list1.count(2)     #统计某个元素在列表中出现的次数
    1
    >>> list1.append(2)
    >>> list1.count(2)
    2
    >>> list1
    [1, 2, 3, 4, 'one', [2, 2], 2]
    
    >>> list1.extend(['two','three','four']) #在列表末尾一次性追加另一个序列中的多个值,可以用列表来扩展原来的列表。
    >>> list1
    [1, 2, 3, 4, 'one', [2, 2], 2, 'two', 'three', 'four']
    
    >>> list1.index(2)  #在列表中找出某个值第一个匹配项的索引位置
    1
    >>> list1.index(2,2,9)  #可以指定索引位置查找,及从第3个元素开始的第1个2在6的索引位置。
    6
    
    >>> list1.insert(2,('string','tuple','list','doctionary')) #在列表索引2前插入对象元素
    >>> print(list1)
    [1, 2, ('string', 'tuple', 'list', 'doctionary'), 3, 4, 'one', [2, 2], 2, 'two', 'three', 'four']
    
    >>> list1.pop()  #移除列表中的一个元素,如不指定索引则是移除最后一个,并且返回该元素的值。可以取出该值赋值给新对象
    'four'
    >>> list1
    [1, 2, ('string', 'tuple', 'list', 'doctionary'), 3, 4, 'one', [2, 2], 2, 'two', 'three']
    >>> list1.pop(2)
    ('string', 'tuple', 'list', 'doctionary')
    >>> list1
    [1, 2, 3, 4, 'one', [2, 2], 2, 'two', 'three']
    
    >>> list1.remove('three')  #移除列表中某个值的第一匹配项
    >>> list1
    [1, 2, 3, 4, 'one', [2, 2], 2, 'two']
    >>> list1.remove(1)
    >>> list1
    [2, 3, 4, 'one', [2, 2], 2, 'two']
    >>> list1.remove(2)     #只移除第一个匹配值
    >>> list1
    [3, 4, 'one', [2, 2], 2, 'two']
    
    >>> list1.reverse()    #反向排序列表中的元素
    >>> list1
    ['two', 2, [2, 2], 'one', 4, 3]
    
    >>> l1 = ['a','b','c','a']
    >>> l1.reverse()
    >>> l1
    ['a', 'c', 'b', 'a']
    >>> l1.sort()   #对原列表进行排序
    >>> l1
    ['a', 'a', 'b', 'c']
    >>> l2 = [1,3,55,34,22,11,2]
    >>> l2.sort()
    >>> l2
    [1, 2, 3, 11, 22, 34, 55]
    #注意:在python3中对字符和数子直接排序会报错,必须指定key排序的关键字函数
    >>> l3 = [1,2,'a','b']
    >>> l3.sort()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unorderable types: str() < int()
  • 相关阅读:
    python学习day02
    鼓起勇气 大胆说不
    spring系列---- spring-mvc1
    win7-64位 jdk安装
    项目分层以及阶段期限规划
    老油条之记
    论软件与管理的关系---企业管理软件的末路
    软件项目管理之觞
    世界在变化-----谷歌不安全
    LPR利率与固定利率哪个更合算?
  • 原文地址:https://www.cnblogs.com/zhangxinqi/p/7592213.html
Copyright © 2011-2022 走看看