• 第五节课:Python列表的应用


    一、内置list方法
    a = 'asdsf'
    list(a)

    返回一个列表, 参数是可选迭代对象。 里面输出的内容还是保持了传入可迭代对象的元素和顺序.
    如果参数为空,则返回一个空的列表.

    二、xrange和range的区别

    2.1 迭代的意思:重复很多次做一些事情。 在Python中实现了__iter__方法的对象是可迭代的, 比如list,tuple,dict
    2.2 xrange的用法
    xrange(开始,结束,步长)
    xrange生成一个xrange对象, 生成器的概念.

    >>> a = xrange(1,10)
    >>> a
    xrange(1, 10)
    >>> print type(a)
    <type 'xrange'>
    >>> print a[0]
    1
    >>> b = range(1,10)
    >>> print type(b)
    <type 'list'>
    >>> b[0]
    1

    2.3 比较

    range: 直接生成一个列表对象
    xrange: 它是生成一个列表对象
    xrange的用法:
    1. 当我们需要操作一个非常大的数据,而且内存比较吃紧的时候,我们可以用xrange来节省内存.
    2. xrange一般用在循环里面, 比如我们只需要操作部分数据的话, 而不是返回全部的数据来完成操作,推荐使用 xrange

    for m in range(1000): [0-999]
    if m == 10:
    print 'sss'
    break

    for m in xrange(1000): [0-10] 11
    for m == 10:
    print 'sss'
    break

    三、列表推导式之再应用
    3.1 取出1-100的所有直的平方
    [x*x for x in range(101)]

    3.2 里面生成的东西不只是数字
    生成字符串 ['the %s' % x for x in range(10)]
    生成元组 [(x,y) for x in range(2) for y in range(2)]
    生成字典 dict([(x,y) for x in range(2) for y in range(2)])

    四、翻来覆去之再谈引用 - 列表是可变对象


    >>> a = ['i','am','lilei']
    >>> b = a
    >>> id(a)
    38575480
    >>> id(b)
    38575480
    >>> a[2]='xiaoming'
    >>> print a
    ['i', 'am', 'xiaoming']
    >>> print b
    ['i', 'am', 'xiaoming']
    >>> del a
    >>> b
    ['i', 'am', 'xiaoming']
    >>>

    >>> a = 'ABCDEFG'
    >>> b = a
    >>> id(a)
    38588992
    >>> id(b)
    38588992
    >>> a[2]
    'C'
    >>> a[2] = 'D'
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment

    五、小技巧之再议删除

    a = []
    del a 基本删除

    del a[:] 大量删除,适合a里数据太多的时候使用。性能上比上面好很多.

    del c 和 del c[:] 还是有区别的.

    >>> a = [1,2,3]
    >>> b = a
    >>> del a
    >>> b
    [1, 2, 3]
    >>> c = b
    >>> c
    [1, 2, 3]
    >>> del c[:]
    >>> c
    []
    >>> b
    []

    修改、删除值,引用的内容会变化. 直接删除变量,原来引用的位置不会变化, 只是引用数量getrefcount减少. 这一点一定要注意.

  • 相关阅读:
    ROW_NUMBER() OVER函数的基本用法
    oracle 中的next_day函数
    宽带大小与实际网速的关系:
    ora-29280 invalid directory path
    [spring]Attribute "scope" must be declared for element type "bean"
    什么是JDK,JRE,SDK,JVM以及API
    管理的常识: 让管理者发挥绩效的7个基本概念 读书笔记
    lua __index的简写
    lua中设置table={}时需要注意的坑
    摄像机旋转
  • 原文地址:https://www.cnblogs.com/huiming/p/5522008.html
Copyright © 2020-2023  润新知