zoukankan      html  css  js  c++  java
  • python中的列表

    摘要:本文主要介绍了python中列表的内容。

    1、列表的基本使用

    • 列表的基本使用很类似于c语言中的数组,只不过它使用起来更加的方便。由于python是一种弱类型的语言,所以在一个列表中可以同时含有整数、浮点数、字符串。取出每一个元素时,就像c语言中一样,通过下标即可完成。例如:
    1 >>> sam=['abc',125,'hello',3.14]
    2 >>> sam
    3 ['abc', 125, 'hello', 3.14]
    4 >>> sam[0]
    5 'abc'
    •  列表相比c语言中的数组更加强大,它甚至可以在列表中包含一个列表,例如:
    1 >>> bbs=['abc',['hj',789,3.14],90,89.99]
    2 >>> bbs
    3 ['abc', ['hj', 789, 3.14], 90, 89.99]
    4 >>> bbs[2]
    5 90
    6 >>> bbs[1]
    7 ['hj', 789, 3.14]
    • 在进行下标取值时,还可以用负数来进行逆序的方法,例如:
    1 >>> pps=['hda',90,9.89,'dgja']
    2 >>> pps
    3 ['hda', 90, 9.89, 'dgja']
    4 >>> pps[-1]
    5 'dgja'
    • 在列表中还可以使用切片的方法获取子列表:
    1 >>> spam=['abc','yui','aghs','agshyd']
    2 >>> spam[:]
    3 ['abc', 'yui', 'aghs', 'agshyd']
    4 >>> spam[1:3]
    5 ['yui', 'aghs']
    6 >>> spam[1:-1]
    7 ['yui', 'aghs']

    2、求长度、连接复制、删除、查找、多重赋值操作

    • 求取长度可以直接借助len( )函数
    1 >>> pam=['abc','yui','aghs','agshyd']
    2 >>> len(pam)
    3 4
    • 连接复制可以直接采取+和*来完成
    1 >>> buf=[1,2,3]
    2 >>> buff=['a','b','c']
    3 >>> buffadd=buf+buff
    4 >>> buffadd
    5 [1, 2, 3, 'a', 'b', 'c']
    6 >>> buffmul=buf*3
    7 >>> buffmul
    8 [1, 2, 3, 1, 2, 3, 1, 2, 3]
    • 直接可以用del来对列表的元素进行删除
    1 >>> qwe=['a','b','c']
    2 >>> del qwe[1]
    3 >>> qwe
    4 ['a', 'c']
    • 可以直接用in和not in来判断一个元素是否在列表中
    1 >>> fun=['dhs','abc',12,'da','uai']
    2 >>> 'abc' in fun
    3 True
    4 >>> 'qew' in fun
    5 False
    • 如果想将一个列表中的值赋值给一些变量,如果列表中元素的个数和变量的个数相同,那么就可以直接采用下面这样的简单的方式来进行:
    1 >>> buff=['abc','def','tyu']
    2 >>> a,b,c=buff
    3 >>> a+b+c
    4 'abcdeftyu'

    3、列表类中的方法

    在python中,列表在本质上就是一个类,其中包含了很多处理实例对象的方法,现在主要介绍这些方法:

    • 查找值操作:index(),参数为要查找的值

    语法:调用该方法,如果该值存在,返回位置信息,不存在返回错误。

    • 插值操作:append()和insert()

    语法:append()有一个参数,就是在列表的最后添加一个元素

    insert()有两个参数,第一个参数是插值的位置,后面一个参数是要插入的值

    • 删除操作:remove()

    注意区分和del的区别,remove是类下的一个函数,而del是一个删除的指令

    语法:remove()只有一个参数,就是要删除的元素

    • 排序操作:sort()

    语法:

    1. 默认参数下,直接调用这种方法。如果是数字,那么从小到大排序,如果是字符串,那么按照字符串的首字母的ASCLL码先后顺序进行排列
    2. 如果参数是reverse=True,那么就是进行逆序排列

    注意:对于数字和字母混合在一起的列表是无法进行排序的

    4、列表和字符串

    学到此处,有一个问题,在c语言中,字符串其实是一种特殊的数组,那么在python中两者有区别吗?

    答案是有的,下面进行具体的讲解:

    首先,我们可以通过最简单的方法对字符串进行操作:

    1 >>> qwe='abcd'
    2 >>> qwe[1]
    3 'b'

    这样的操作在列表中也是完全合法的,但是列表却要比字符串的操作强大很多:列表的数据是可以改变的,但是字符串却不可以:

    1 >>> fun='i am chinese'
    2 >>> fun[0]=you    #操作报错
    3 Traceback (most recent call last):
    4   File "<pyshell#11>", line 1, in <module>
    5     fun[0]=you
    6 NameError: name 'you' is not defined
    7 >>> newfun='you '+fun[2:len(fun)]   
    8 >>> newfun
    9 'you am chinese'

    另外,还可以通过list()和tuple()这两个函数来实现对参数的类型转换。例如:

    1 >>> tuple(['asd','qwe'])
    2 ('asd', 'qwe')
    3 >>> list(('asd', 'qwe'))
    4 ['asd', 'qwe']
    5 >>> list('asdfg')
    6 ['a', 's', 'd', 'f', 'g']
    7 >>> tuple(('asdfg'))
    8 ('a', 's', 'd', 'f', 'g')

    5、列表中的引用

    我们一定要了解这样一个事实:列表的名称并不是列表本身,而是一个列表的引用。例如现在有一个列表Sam=['qwe',123],Sam在这里就是一个列表的引用,真正的列表引用通过一个ID号来进行联系,当进行操作“Bam=Sam”时,那么就产生了两个引用(同一个ID)指向了同一个列表的事情,当列表的内容发生改变时,那么两个引用的内容自然也就发生了改变。实验如下:

     1 >>> Sam=['qwe',123]
     2 >>> Bam=Sam
     3 >>> Sam[1]='asd'
     4 >>> Sam
     5 ['qwe', 'asd']
     6 >>> Bam
     7 ['qwe', 'asd']
     8 >>> id(Sam)
     9 50147208
    10 >>> id(Bam)
    11 50147208

    但是在变量赋值的情况中却不会如此:

    1 >>> a=12
    2 >>> b=a
    3 >>> id(a)
    4 8791474689408
    5 >>> id(b)
    6 8791474689408
    7 >>> a=13
    8 >>> b
    9 12

    6、copy模块

    copy模块下有copy()和deepcopy()两种复制的方法,下面进行进一步的探究:

    1 >>> import copy
    2 >>> spam=['a','b','c']
    3 >>> bam=copy.copy(spam)
    4 >>> id(spam)
    5 51938952
    6 >>> id(bam)
    7 47246152

    可以看到,在copy模式中,复制是完全创建了一个新的列表。这里不再展示,deepcopy模式也是完全复制,只不过deepcopy的复制是针对含有列表的列表

  • 相关阅读:
    [方法] 如何做产品功能设计
    js如何去除一个数组中与另一个数组中的值相同的元素
    js 导出Excel2
    js 导出Excel
    CSS3动画
    没有欲望是一种什么样的感觉
    L9-DOM高级应用
    L8-DOM操作应用
    L7-DOM基础
    L6-js定时器的应用
  • 原文地址:https://www.cnblogs.com/lzy820260594/p/11530550.html
Copyright © 2011-2022 走看看