码迷,mamicode.com
首页 > 编程语言 > 详细

Python列表

时间:2018-04-11 11:39:36      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:def   values   rom   stl   generator   python   排序   行修改   show   

列表的格式

namesList = [‘a‘,‘b‘,‘c‘]

比C语言的数组强大的地方在于列表中的元素可以是不同类型的

 testList = [1, ‘a‘]

可以对列表用切片

列表的循环遍历

使用for循环

为了更有效率的输出列表的每个数据,可以使用循环来完成

    namesList = [‘xiaoWang‘,‘xiaoZhang‘,‘xiaoHua‘]
    for name in namesList:
        print(name)

使用while循环

为了更有效率的输出列表的每个数据,可以使用循环来完成

 

    namesList = [‘xiaoWang‘,‘xiaoZhang‘,‘xiaoHua‘]

    length = len(namesList)

    i = 0

    while i<length:
        print(namesList[i])
        i+=1

列表的相关操作

列表中存放的数据是可以进行修改的,比如"增"、"删"、"改""

"增"append, extend, insert

append

通过append可以向列表末尾追加元素

extend

通过extend可以将另一个序列中的元素逐一添加到列表中,也可理解为扩展,其原理就是for循环遍历与append结合。

技术分享图片
+=本质会调用MutableSequence类下的魔法函数__iadd__方法,该方法有调用了extend方法。

rom collections import abc  # ctrl+鼠标左键点abc
......
from _collections_abc import *
from _collections_abc import __all__  # ctrl+鼠标左键点__all__
......
__all__ = ["Awaitable", "Coroutine",
           "AsyncIterable", "AsyncIterator", "AsyncGenerator",
           "Hashable", "Iterable", "Iterator", "Generator", "Reversible",
           "Sized", "Container", "Callable", "Collection",
           "Set", "MutableSet",
           "Mapping", "MutableMapping",
           "MappingView", "KeysView", "ItemsView", "ValuesView",
           "Sequence", "MutableSequence",
           "ByteString",
           ]  # ctrl+鼠标左键点MutableSequence
......
    def __iadd__(self, values):  #实际上+=就会调用这个魔法函数
        self.extend(values)
        return self
......
    def extend(self, values):
        S.extend(iterable) -- extend sequence by appending elements from the iterable
        for v in values:
            self.append(v)
扩展知识,+=的本质,此处不懂可以跳过
>>> a = [1, 2]
>>> b = [3, 4]
>>> a.append(b)
>>> a
[1, 2, [3, 4]]
>>> a.extend(b)
>>> a
[1, 2, [3, 4], 3, 4]

insert

insert(index, object) 在指定位置index前插入元素object

>>> a = [0, 1, 2]
>>> a.insert(1, 3)
>>> a
[0, 3, 1, 2]

"改"

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

    #定义变量A,默认有3个元素
    A = [‘xiaoWang‘,‘xiaoZhang‘,‘xiaoHua‘]

    print("-----修改之前,列表A的数据-----")
    for tempName in A:
        print(tempName)

    #修改元素
    A[1] = ‘xiaoLu‘

    print("-----修改之后,列表A的数据-----")
    for tempName in A:
        print(tempName)

结果:
    -----修改之前,列表A的数据-----
    xiaoWang
    xiaoZhang
    xiaoHua
    -----修改之后,列表A的数据-----
    xiaoWang
    xiaoLu
    xiaoHua

"查"in, not in, index, count

所谓的查找,就是看看指定的元素是否存在

in, not in

python中查找的常用方法为:

  • in(存在),如果存在那么结果为true,否则为false
  • not in(不存在),如果不存在那么结果为true,否则false

index, count

index和count与字符串中的用法相同

>>> a = [‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘]
>>> a.index(‘a‘, 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: ‘a‘ is not in list
>>> a.index(‘a‘, 1, 4)
3
>>> a.count(‘b‘)
2
>>> a.count(‘d‘)
0

"删"del, pop, remove

列表元素的常用删除方法有:

  • del:根据下标进行删除
  • pop:删除最后一个元素
  • remove:根据元素的值进行删除

排序sort, reverse

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

reverse方法是将list逆置。

>>> a = [1, 4, 2, 3]
>>> a
[1, 4, 2, 3]
>>> a.reverse()
>>> a
[3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

实例:http://www.cnblogs.com/0bug/p/8671934.html

列表嵌套

一个列表中的元素又是一个列表,那么这就是列表的嵌套

>>> alist = [1,[2,3],4]
>>> alist[1][1]
3

  

Python列表

标签:def   values   rom   stl   generator   python   排序   行修改   show   

原文地址:https://www.cnblogs.com/0bug/p/8794359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!