• Python学习3——列表


    Python内置数据结构:列表,元组,字典,集合。

    列表(list)是一组数值的组合,列表元素可以是任何类型(包括列表)。

    >>> xx = ['Toney',20,11-6,[1,2]]   #包括字符串,整数,列表
    
    >>> xx
    
    ['Toney', 20, 5, [1, 2]]

    操作列表包括:索引(indexing)、切片(sliceing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员。

    List的索引

    列表的索引就是列表的排序,列表从左到右元素索引递增,第一个元素的索引是0,列表元素是n个,最后一个元素的索引就是n-1。

    >>> 'Toney'[2]
    
    'n' 

    列表的负索引从右往左计数,最后一个元素的索引是-1,倒数第二个元素索引是-2

    >>> 'Toney'[-1]
    
    'y'
    
    >>> 'Toney'[-2]
    
    'e'

    还可以这样:

    >>> fourth = input('year:')[3]
    
    year:2019
    
    >>> fourth
    
    '9'

    修改索引为0的元素值:

    >>> aa = ['a','b','c']
    
    >>> aa[0] = 1
    
    >>> aa
    
    [1, 'b', 'c']

    列表的切片

    索引可以访问列表的某一个元素,切片可以访问列表一段范围的元素。如:months[4:9],4是切片的开始索引,9是结束索引,中间用冒号隔开。

    >>> months = [
    
    'January','February','March',
    
    'April','May','June',
    
    'August','September','October',
    
    'November','December']
    
    >>> months[4:9]
    
    ['May', 'June', 'August', 'September', 'October']
    
    >>> test = '1234567890abcdefg'
    
    >>> test[8:-2]
    
    '90abcde'

    还可以有另外一种,起止索引可以缺失,冒号左边缺失表示从[0]开始取值,冒号右边缺失表示取后面全部。

    >>> months[:]
    
    ['January', 'February', 'March', 'April', 'May', 'June', 'August', 'September', 'October', 'November', 'December']
    
    >>> months[:3]
    
    ['January', 'February', 'March']
    
    >>> months[7:]
    
    ['September', 'October', 'November', 'December']

    列表可以合并在一起:

    >>> aa = ['a','b','c']+3*['d']+['f']
    
    >>> aa
    
    ['a', 'b', 'c', 'd', 'd', 'd', 'f']

     判断是否是列表元素

    >>> 'a' in ['a','b']
    
    True
    
    >>> users = ['aaa','bbb','ccc']
    
    >>> input('你的名字:') in users
    
    你的名字:bbb
    
    True

    遍历列表元素:for x in list:(后面跟的是冒号)

    >>> for x in months[3:9]:
    
    print(x)
    
    April
    
    May
    
    June
    
    August
    
    September
    
    October

    设置步长:

    >>> num=[1,2,3,4,5,6,7,8,9]
    
    >>> num[0:9:1]    #步长为1
    
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> num[0:9:2]    #步长为2
    
    [1, 3, 5, 7, 9]
    
    >>> num[0:9:3]     #步长为3
    
    [1, 4, 7]

    删除列表

    删除整个列表:

    >>> num=[1,2,3,4,5,6,7,8,9]
    
    >>> del num
    
    >>> num
    
    Traceback (most recent call last):
    
      File "<pyshell#204>", line 1, in <module>
    
        num
    
    NameError: name 'num' is not defined

    删除列表元素:

    >>> num=[1,2,3,4,5,6,7,8,9]
    
    >>> del num[0]
    
    >>> num
    
    [2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> del num[2:4]
    
    >>> num
    
    [2, 3, 6, 7, 8, 9]

    列表推导式:

    >>> even = [2 * i for i in range(10)]
    
    >>> even
    
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

    生成even的过程是把0~10之间的数字都乘以2变成偶数。

    >>> even2 = [i for i in range(20) if i%2 == 0]
    
    >>> even2
    
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

    生成even2的过程是从0-20之前挑选出偶数。

    列表的内置函数

    len()计算列表的长度(元素个数):

    >>> len([1,2,3])
    
    3
    
    >>> num = [i for i in range(10)]
    
    >>> len(num)
    
    10

    min()返回列表元素中的最小值。

    >>> min(['b','c','d'])
    
    'b'
    
    >>> min([5,6,7])
    
    5

    max()返回列表元素中的最大值,列表元素必须是同一类型且可比较,比如都是数字型的,或都是字符串。

    >>> max([1,2,3])
    
    3
    
    >>> max(['b','c','d'])
    
    'd'


    sum()计算列表所有元素的和,其元素类型必须是数值型的(整数、浮点数)。

    >>> sum([3,4,5.55])
    
    12.55

    sorted()返回一个排序的列表,但并不改变原列表。

    >>> sorted([5,2,7,1,4,6,3,9,8])
    
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> sorted(['d','a','f','b','c'])
    
    ['a', 'b', 'c', 'd', 'f']

    list()生成一个空列表,或把其它类型数据转换成list。

    >>> list()
    
    []
    
    >>> list('hello')
    
    ['h', 'e', 'l', 'l', 'o']

    切片赋值

    >>> xx = list('123')
    
    >>> xx
    
    ['1', '2', '3']
    
    >>> xx[:1] = list('abc')    #将索引为1之前的元素赋值
    
    >>> xx
    
    ['a', 'b', 'c', '2', '3']

    1.append()把一个元素加到列表的尾部。

    >>> x = ['a','d','c']
    
    >>> x.append('b')
    
    >>> x
    
    ['a', 'd', 'c', 'b']

    2.insert()把一个元素加到列表的特定位置。

    >>> x = ['a','d','c']
    
    >>> x.append('b')
    
    >>> x
    
    ['a', 'd', 'c', 'b']
    
    >>> x.insert(2,'b')   #将‘b’插入到索引2的位置
    
    >>> x
    
    ['a', 'd', 'b', 'c', 'b']

    3.remove()删除第一个出现的元素‘b’

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> x.remove('b')
    
    >>> x
    
    ['a', 'd', 'c', 'b']

    4.pop()删除并返回某个位置(索引)的元素

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> x.pop(1)      
    
    'd'
    
    >>> x
    
    ['a', 'b', 'c', 'b']

    5.index()返回遇到的第一个某值的索引,如果列表不包含该值则抛出错误

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> x.index('b')
    
    2
    
    >>> x.index('g')
    
    Traceback (most recent call last):
    
      File "<pyshell#19>", line 1, in <module>
    
        x.index('g')
    
    ValueError: 'g' is not in list

    6.count()返回列表中某值的个数

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> x.count('b')
    
    2
    
    >>> x.count('a')
    
    1

    7.sort()对列表进行排序

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> x.sort()
    
    >>> x
    
    ['a', 'b', 'b', 'c', 'd']

    高级一点的排序,sort方法接受两个可选参数:key和reverse.

    根据长度对元素进行排序,将参数key设置为函数len.

    >>> x = ['abcg','axdwdge','sev','aidge']
    
    >>> x.sort(key=len)
    
    >>> x
    
    ['sev', 'abcg', 'aidge', 'axdwdge']

    只要将reverse指定为一个真值(True或False):

    >>> x=list('davgslicb')
    
    >>> x
    
    ['d', 'a', 'v', 'g', 's', 'l', 'i', 'c', 'b']
    
    >>> x.sort(reverse=True)        #按照相反的熟悉对列表元素进行排序
    
    >>> x
    
    ['v', 's', 'l', 'i', 'g', 'd', 'c', 'b', 'a']
    
    >>> x.sort(reverse = False)
    
    >>> x
    
    ['a', 'b', 'c', 'd', 'g', 'i', 'l', 's', 'v']

    8.reverse()将列表倒置

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> x.reverse()
    
    >>> x
    
    ['d', 'c', 'b', 'b', 'a']

    9.extend方法可以在列表的末尾一次性追加另一个序列中的多个值

    >>> x = ['a', 'd', 'b', 'c', 'b']
    
    >>> y = [1,2,3]
    
    >>> x.extend(y)
    
    >>> x
    
    ['a', 'd', 'b', 'c', 'b', 1, 2, 3]

    10.copy()方法可以复制列表。

    常规复制:

    >>> a = list('abcdefg')   
    
    >>> a
    
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    
    >>> b = a
    
    >>> b[0]='k'
    
    >>> a
    
    ['k', 'b', 'c', 'd', 'e', 'f', 'g']

    上面这种复制,a和b指向的是同一个列表,修改b列表的值,a列表的值对应也会改变。让a和b指向不同的列表,必须让b关联到a的副本。

    >>> a = [1,2,3]
    
    >>> b = a.copy()
    
    >>> b[1]=7
    
    >>> a
    
    [1, 2, 3]
  • 相关阅读:
    Windows关于文件句柄数的限制
    python 的未来5-10年的就业方向
    想着给要做的软件起一个名儿~
    sql server 特殊sql
    字节序之大小端_Intelx86是小端_网络传输是大端
    维基百科Wikipedia镜像网站列表
    NodeJS开启GZIP功能
    SqlServer2008 跨服务器同步数据
    Asp.net中的ViewState用法
    JAVA Netty入门Demo实例代码(自写测试可用)实现客户端服务器端互传数据
  • 原文地址:https://www.cnblogs.com/suancaipaofan/p/11068446.html
Copyright © 2020-2023  润新知