• Python(2.7)-列表(list)


    2.2列表(list)

       列表是最常用的Python数据类型,同时也是最常用的数据存储容器,它可以存储任意对象(元素);它用逗号分隔各个元素并使用方括号([])括起来

    2.2.1新增插入(list.append(element) ; list.insert(index,element))

      list.append(element):在列表末尾增加一个元素

    >>> a=[1,2,3]

    >>> a.append(4)

    >>> a

    [1, 2, 3, 4]

    >>> 

      list.insert(index,element):在指定索引位置前面插入一个元素,如果指定索引位置超出列表长度,则在列表最后插入该元素

    >>> a=[1,2,3]

    >>> a.insert(2,5)

    >>> a

    [1, 2, 5, 3]

    >>> 

    2.2.2删除(del list[index];del list ; list.remove(element);list.pop())

      del list(index):删除指定索引位置的元素,索引位置超出列表长度会报错IndexError: list assignment index out of range

    >>> a=[1,2,2,3,2,3,4,5]

    >>> del a[3]        #删除第四个元素

    >>> a

    [1, 2, 2, 2, 3, 4, 5]

    >>> 

      del list:删除整个列表

    >>> a=[1,2,3]

    >>> a

    [1, 2, 3]

    >>> del a

    >>> a

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    NameError: name 'a' is not defined

    >>> 

      list.remove(element):删除列表中第一个指定元素,如果指定的元素列表中不存在会报错ValueError: list.remove(x): x not in list

    >>> a

    [1, 2, 2, 2, 3, 4, 5]

    >>> a.remove(2)      #删除列表中第一个2

    >>> a

    [1, 2, 2, 3, 4, 5]

    >>> 

     

      list.pop():取出并删除对应索引位置的元素,不传索引位置默认取出删除最后一个元素

    >>> a

    [1, 2, 2, 3, 2, 3, 4, 5]

    >>> a.pop()         #取出并删除列表中最后一个元素

    5

    >>> a.pop(2)        #取出并删除列表中第三个元素   

    2

    >>> a

    [1, 2, 3, 2, 3, 4]

    >>> 

    2.2.3修改(list[index]=element)

      list[index]=element:直接通过列表索引位置修改对应元素,如果修改的索引位置超出列表范围会报错:IndexError: list assignment index out of range

    [1, 2, 2, 3, 4, 5, 5]

    >>> a[1]=10

    >>> a

    [1, 10, 2, 3, 4, 5, 5]

    >>> 

    2.2.4查看(list[index];遍历)

           list[index]:直接通过索引查看对应位置的元素,如果查看的索引位置超出列表范围会报错:IndexError: list index out of range

           遍历:顺序查看列表中每一个元素

    for I in list:

    print I

    >>> a

    [1, 10, 2, 3, 4,]

    >>> a[3]

    3

    >>> for i in a:

    ...     print i

    ...

    1

    10

    2

    3

    4

    >>> 

    2.2.5长度len(list)

      len(list):返回列表长度

    >>> a

    [1, 10, 2, 3, 4]

    >>> len(a)

    5

    >>> 

    2.2.6数学计算(list1.extend(list2);list1+list2;list1*(num);cmp(list1,list2))

           list1+list2:两个list元素合并形成新的list

    >>> a

    [1, 10, 2, 3, 4]

    >>> a+[1,2,3]

    [1, 10, 2, 3, 4, 1, 2, 3]

           list1.extend(list2):在list1的末尾插入list2中的所有元素

    >>> a

    [1, 10, 2, 3, 4]

    >>> a.extend([4,5,6])

    >>> a

    [1, 10, 2, 3, 4, 4, 5, 6]

    >>> 

           list1*(num):将list1中的元素复制num次,生成一个新的list

    >>> a=[1,2,3]

    >>> a*3

    [1, 2, 3, 1, 2, 3, 1, 2, 3]

    >>> a

    [1, 2, 3]

    >>> 

      cmp(list1,list2):比较list1list2的大小,先比较两个列表第一个元素(ascii)的大小,第一个元素相同则比较第二个元素,以此类推,如果list1大,则返回1list2大返回-1,两个list相同返回0

    >>> cmp([1,23],[1,2,3])

    1

    >>> 

    >>> cmp(["Z",23],["a",2,3])

    -1

    >>> cmp([1,2,3],[1,2,3])

    0

    >>> 

    2.2.7统计列表中某一元素出现的次数(list.count(element))

           list.count(element):返回list中指定元素出现的次数

    >>> a=[1,2,2,3,2,3,4,5]

    >>> a.count(2)

    3

    >>> 

    2.2.8确定元素索引位置(list.index(element))

      list.index(element):返回指定元素在列表中第一次出现时的索引位置,如果元素不存在会报错:ValueError: 9 is not in list

    >>> a=[1,2,2,3,2,3,4,5]

    >>> a.index(2)

    1

    >>> a.index(9)

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    ValueError: 9 is not in list

    2.2.9列表排序(list.sort ();sorted(list))

      list.sort (reverse=False):将原列表中元素升序排序

    >>> a

    [1, 2, 3, 2, 3, 4]

    >>> a.sort()

    >>> a

    [1, 2, 2, 3, 3, 4]

    >>> 


        sort方法,函数嵌套

    >>> list1=[(1,5,3),(1,3,6,3),(1,1,2,4,5,6),(1,9)]
    >>> def L(seq):
    ...     return len(seq)
    ...
    >>> list1.sort(key=L,reverse=True)
    >>> print list1
    [(1, 1, 2, 4, 5, 6), (1, 3, 6, 3), (1, 5, 3), (1, 9)]
    >>> print L(list1)
    4
    >>> list2=[(1,5,3),(1,3,6,3),(1,1,2,4,5,6),(1,9)]
    >>> list2.sort(key=L,reverse=False)
    >>> print list2
    [(1, 9), (1, 5, 3), (1, 3, 6, 3), (1, 1, 2, 4, 5, 6)]
    >>> list2=[(1,1,3),(1,2,6,3),(1,3,3,4,5,6),(1,9)]
    >>> list2.sort(key=L,reverse=True)
    >>> print list2
    [(1, 3, 3, 4, 5, 6), (1, 2, 6, 3), (1, 1, 3), (1, 9)]
    >>> def K(seq):
    ...     return seq[1]
    ...
    >>> list2.sort(key=K,reverse=True)   # 在sort函数里面执行时,会把list2中的元素遍历给K
    >>> print list2
    [(1, 9), (1, 3, 3, 4, 5, 6), (1, 2, 6, 3), (1, 1, 3)]

          sorted(list):将列表升序排序之后生成一个新的list

    >>> a=[4,3,5,2]

    >>> sorted(a)

    [2, 3, 4, 5]

    >>> a

    [4, 3, 5, 2]

    >>> 

    2.2.10列表倒序排列(list.reverse())

      list.reverse():将列表倒序排列

    >>> a

    [4, 3, 5, 2]

    >>> a.reverse()

    >>> a

    [2, 5, 3, 4]

    >>> 

    2.2.11列表去重(排序)(set(list))

      set(list):将列表去重排序

    >>> a=[3,3,4,2,2,5]

    >>> set(a)

    set([2, 3, 4, 5])

    >>> list(set(a))

    [2, 3, 4, 5]

    >>> 

    2.2.12列表合并(zip(list1,list2))

           zip(list1,list2):list1lsit2中索引位置相同的元素取出组合成一个元组,将组合成的所有元组存入一个list中,如果两个list中元素数量不一致,多余的元素会被自动剔除

    >>> a=["a","b","c"]

    >>> b=[1,2,3,4,5]

    >>> zip(a,b)

    [('a', 1), ('b', 2), ('c', 3)]

    >>> a

    ['a', 'b', 'c']

    >>> b

    [1, 2, 3, 4, 5]

    >>> 

    2.2.13将字符串转换为列表(string.split ())

           string.split ():将字符串中元素去掉()中的内容并分割,生成一个列表

    >>> a="i am a sunny big boy"

    >>> a.split()

    ['i', 'am', 'a', 'sunny', 'big', 'boy']

    >>> a

    'i am a sunny big boy'

    >>> a="i*am*a*sunny*big*boy"

    >>> a.split("*")

    ['i', 'am', 'a', 'sunny', 'big', 'boy']

    >>> 

    2.2.14将列表转换为字符串(“”.join(list))

           “”.join(list):将列表中元素按照冒号中指定的符号链接,生成一个字符串

    >>> a

    ['i', 'am', 'a', 'sunny', 'big', 'boy']

    >>> "*".join(a)

    'i*am*a*sunny*big*boy'

    >>> a

    ['i', 'am', 'a', 'sunny', 'big', 'boy']

    >>> 

    2.2.15切片操作sequence[a:b:c]

      sequence[a:b:c]:可以对字符串、元组、列表等序列进行切片操作,其中a,b,c为三个非必填的参数,a表示操作的起始索引位置,b表示操作的终止索引位置,c代表步长;c的默认值为1

    a=[0,1,2,3,4,5,6,7,8,9]

    a[0]>>>0

    a[0:3]>>>[0,1,2]

    a[3:]>>>[3,4,5,6,7,8,9]

    a[:3]>>>[0,1,2]

    a[0:10:2]>>>[0,2,4,6,8]

    a[::-1]>>>[9,8,7,6,5,4,3,2,1,0]

    a[-1:]>>>[9]

    a[:-1]>>>[0,1,2,3,4,5,6,7,8]      #从第一个元素开始取值,取到倒数第一个元素,等价于a[0:-1]

    a[-2:-8:-2] >>>[8, 6, 4]    #从倒数第二个数8开始取值,取到倒数第八个数2,步长为-2(倒着每隔两个元素取一个)

    a[-2:-8:2] >>>[]

  • 相关阅读:
    hdu1754:I Hate It
    hdu1166
    bzoj1642:挤奶时间
    线段树
    bzoj1699:排队
    bzoj3438: 小M的作物
    bzoj2127: happiness
    bzoj2768[JLOI2010]冠军调查
    bzoj1070[SCOI2007]修车
    bzoj1305[CQOI2009]dance跳舞
  • 原文地址:https://www.cnblogs.com/pw20180101/p/8175947.html
Copyright © 2020-2023  润新知