Python入门基础课第八节--列表

    1.前言

    在前面一章的序列的内容里面,其实我们已经多次使用过列表,大家可以返回去在看看。一些强大的方法和功能值得我们再去深入的了解它。前面章节介绍的只是一些简单的用法,在一些例子里面也有渗透入列表的知识,本章我们会详细介绍关于列表的一些非常有用的、实际的方法。

    最重要的一点我们必须首先知道:列表是可变的--我们可以改变列表的内容,通过下面介绍的一些方法我们可以很轻松的改变它的内容来达到我们的需要。

注意:在HTML/XML编辑器里面生成的python代码会有类似<span style="color:#333333;">的标签语言,这部分不在代码里面,请自动忽略。

    2.基本的列表操作

     One:list函数

    list函数在这里有什么作用呢?根据它的名字我们就可以猜得出来,它会帮助我们生成一个列表,相当于列表的初始化。但是要注意的是: list函数本身是一种类型而不是函数,再我们使用list函数的时候并不区分这一点,对我们程序编写没有影响。 而且list函数适用于所有类型的序列,并不是只是字符串,看一看它的功能。
>>> list('Hello')
['H', 'e', 'l', 'l', 'o']
>>> list('Hello,MyWorld!')
['H', 'e', 'l', 'l', 'o', ',', 'M', 'y', 'W', 'o', 'r', 'l', 'd', '!']

    Two:元素赋值

    还记得我们以前说过的索引嘛,现在可是派上用场了。我们可以不会像以前一样采用普通的赋值语句去给列表里面的元素进行赋值,而是采用元素所特有的下标也就是索引来进行操作,来看一看。

>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[2]=100
>>> numbers[::]
[1, 2, 100, 4, 5, 6, 7, 8, 9, 10]
    在这里需要注意: 不能给一个位置不存在于列表里面的元素赋值,列表长度只有99,就不能给索引为100的元素进行赋值。如果要赋值,那么久必须创建一个长度为101的列表。

    Three:删除元素

    从列表中删除元素我们需要用到del语句来实现,来看看。
>>> numbers
[1, 2, 4, 5, 6, 7, 8, 9, 10]
>>> len(numbers)
9
>>> del numbers[5]
>>> numbers
[1, 2, 4, 5, 6, 8, 9, 10]
>>> len(numbers)
8
    其实del语句不光用在这里,在后面的字典元素,甚至是其他变量的删除操作都会用到。后续的章节我们会一一介绍到,不要着急。

    Four:分片赋值

    矮油,又碰见分片这个词了,很强大的一个词伴随着它强大的功能。一起来看看。
>>> numbers
[1, 2, 4, 5, 6, 8, 9, 10]
>>> numbers[5:]=[101,102,103]
>>> numbers
[1, 2, 4, 5, 6, 101, 102, 103]
>>> name=list('youzi')
>>> name
['y', 'o', 'u', 'z', 'i']
>>> name[1:]=list('uanzi')
>>> name
['y', 'u', 'a', 'n', 'z', 'i']
>>> numbers
[1, 2, 4, 5, 6, 101, 102, 103]
>>> numbers[5:7]=[] #删除列表里面元素的新操作
>>> numbers
[1, 2, 4, 5, 6, 103]

    3.列表方法

    前面我们介绍过函数的概念,函数一些比较强大的功能我们在前面的实例里面也体会过。现在我们介绍一种和函数密切相关的概念--方法。
    方法是一个与某些对象有密切联系的函数,对象可能是列表、数字、也可能是字符串或者其他类型的对象,我们得牢牢记住方法的调用形式: 对象.方法(参数)。

    append方法

    append方法我们根据它的意思就可以知道用于在列表末尾添加或者增加新的对象或者元素,看一看具体的用法。
>>> numbers=[1,2,3,4,5,6,7]
>>> numbers
[1, 2, 3, 4, 5, 6, 7]
>>> numbers.append(8)
>>> numbers
[1, 2, 3, 4, 5, 6, 7, 8]
    注意:append方法和其他方法类似,只是在恰当的位置修改原来的列表, 它不只是简单地返回一个修改过的新列表--而是直接修改原来的列表。

    count方法

    count方法用来统计某个元素在列表中出现的次数:

>>> numbers.append(5)
>>> numbers
[1, 2, 3, 5, 5]
>>> numbers.count(5)
2

    extend方法

    extend方法可以在列表的末尾一次性追加另一个序列中的多个值,可以用新的列表去扩展原有的列表。来看看:
>>> newnumbers=[6,7,8,9,10]
>>> numbers.extend(newnumbers)
>>> numbers
[1, 2, 3, 5, 5, 6, 7, 8, 9, 10]
    这样的结果你有没用想到一般的字符串拼接符,我们来看看有什么样的效果:
>>> numbers=[1,2,3,5,5]
>>> newnumbers
[6, 7, 8, 9, 10]
>>> numbers+newnumbers#拼接拼接
[1, 2, 3, 5, 5, 6, 7, 8, 9, 10]
>>> numbers
[1, 2, 3, 5, 5]
>>> numbers[len(numbers):]=newnumbers
>>> numbers #比较一下这里的numbers和上面拼接以后的numbers有什么区别
[1, 2, 3, 5, 5, 6, 7, 8, 9, 10]

    index方法

    index方法用于从列表中找出某个值第一个匹配的索引位置。

>>> numbers
[1, 2, 3, 5, 5, 6, 7, 8, 9, 10]
>>> numbers.index(3)
2
>>> numbers.index(10)
9
>>> numbers[9]
10
    在这里下标为9的位置对应的元素是10,那么通过索引9去寻找元素的时候显示的肯定是元素10。

    insert方法

    insert方法用于将对象插入到列表当中去。
>>> numbers
[1, 2, 3, 5, 5, 6, 7, 8, 9, 10]
>>> numbers.insert(4,11)
>>> numbers
[1, 2, 3, 5, 11, 5, 6, 7, 8, 9, 10]

    pop方法

    pop方法会移除列表里面一个元素(默认是最后一个),并且返回该元素的值。 pop方法是唯一一个既能修改列表又返回元素值得列表方法!
   
>>> numbers
[1, 2, 3, 5, 11, 5, 6, 7, 8, 9, 10]
>>> numbers.pop()
10
>>> numbers
[1, 2, 3, 5, 11, 5, 6, 7, 8, 9]
>>> numbers.pop(4)
11
>>> numbers
[1, 2, 3, 5, 5, 6, 7, 8, 9]

    remove方法

    remove方法用于移除列表里面某个值的第一个匹配项。
    
>>> numbers
[1, 2, 3, 5, 5, 6, 7, 8, 9]
>>> numbers
[1, 2, 3, 5, 5, 6, 7, 8, 9]
>>> numbers.remove(5)
>>> numbers
[1, 2, 3, 5, 6, 7, 8, 9]

    sort方法

    这个方法名字一听就是排序的,但是采用了固定的排序方法,意味着改变原来的列表,从而让其中的元素能按照一定的顺序排序,而不是简单的返回一个已经排序过的副本。
>>> numbers
[1, 2, 3, 5, 100, 0, 6, 7, 8, 9, 88]
>>> numbers.sort()
>>> numbers
[0, 1, 2, 3, 5, 6, 7, 8, 9, 88, 100]
>>> new=numbers.sort()
>>> print new
None
    如果你真的想这样操作,可以这样来操作,相当于是建立了一个number的副本new。
>>> numbers=[100,2,5,8,3,0,99]
>>> new=numbers[:]
>>> new.sort()
>>> new
[0, 2, 3, 5, 8, 99, 100]

    4.高级排序方法

    如果你希望元素能按照特定的方式去排序,而不是采用sort默认的排序方式,可以通过compare(x,y)的形式自定义比较函数。compare函数会在x<y时候返回负数,在x>y的时候返回正数。如果x=y则返回0.定义好这个函数以后就可以给sort函数提供参数了。
还有sort函数可选的两个参数为key和reverse,如果要使用它们,就要通过名字来指定。参数key和参数cmp一样,必须提供一个在排序过程中使用的函数,但是函数并不是直接用来确定对象的大小,而是为每个元素创建一个键,然后所有元素根据键来排序。来看看下面的例子:
>>> x=[4,6,2,1,7,9]
>>> x
[4, 6, 2, 1, 7, 9]
>>> x.sort(reverse=True)
>>> x
[9, 7, 6, 4, 2, 1]
>>> x=['aardvark','abalone','acme','add','aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
    好咯,序列这部分就先给大家介绍到这里,亲自动手实践还是最好的学习方式之一。下一章节预告--元组。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值