• python自学笔记(三)python基本数据类型之列表list


    列表list特性概括

    1、有序集合

    2、通过偏移来索引,从而读取数据

    3、支持嵌套

    4、可变的类型(dict 字典也是可变的)

     

    (1)切片

    a = [1,2,3,4,5,6,7]

    正向索引 a[0:4:1] 1是步长

    反向索引 a[-1:-4:-1]

    默认索引 a[1::2] 从第二位到最后 步长是2

     

    (2)添加操作

    a = [1,2,3]

    b = [4,5,6]

    1. 用 "+"

    a + b = [1,2,3,4,5,6]

    2.Extend 接收参数并将该参数的每个元素都添加到原有的列表中(从list最后一个元素开始),原地修改列表而不是新建一个列表(id地址值不变,不会分配新内存空间)

    3.Append 添加任意对象到列表的末端,同Extend 也是原地修改,不分配新内存

    4.Insert 插入任意对象到列表中 可以控制插入位置 例如:a.insert[a,'ab']

    (3)修改:修改列表本身只需要直接复制操作就行

    a = [1,2,3]

    a[0] = 'haha'

    (4)删除

    1.Del  通过索引删除指定位置的元素

    del a[0]

    del a 删除列表对象的引用

    del a[:]清空列表对象里的元素

    2.Remove 移除列表中指定值的第一个匹配值,如果没找到会报错

    a.remove(5) 5值,不是索引

    3.Pop返回最后一个元素,并从list中删除它

    a.pop() -->返回list最后一个值

    (5)成员关系

    in、not in 可以判断一个元素是否在列表里,返回一个bool类型,元素在列表就返回true,否则返回false

    a = [1,2,3]

    2 in a -->true

    5 not in a -->true

    (6)列表推导式

    表达式     迭代变量      迭代器

    [expr for iter_var in iterable]

    1.首先迭代iterbale里所有内容,每一次迭代,都把iterbale里相应内容放在iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个list列表。

     

    例如:生成一个包含1到10的列表

    方法1:[x for x in range(1,11)]

    方法2:range(1,11,1)

    表达式     迭代变量    迭代器      条件语句

    [expr for iter_var in iterable if cond_expr]

    2.加入了判断语句,只有满足条件的内容才吧iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。

    练习:

    1、1-10奇数列表

    方法1:range(1,11,2)

    方法2:[x for x in range(1,11) if x % 2 == 1]

    (7)排序和翻转sort/reverse 这2个方式直接修改原列表,它的返回值为None,所以

    a = [33,11,58,65]

    b = a.sort()

    print b -->None

    a已经翻转 print a-->[11,33,58,65]

    再调用 a.reverse() 列表第0位元素与最后一位对调,一次类推,第1位元素与倒数第二位元素对调

    print a-->[65,58,33,11]

    (8)内置list方法

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

    a = "asd"

    list(a) -->['a','s','d'] 

    list((1,2))-->[1,2]

    (9)xrange和range的具体区别

    1.range直接生成一个列表对象,xrange是生成一个xrange对象

    2.xrange(开始,结束,步长)它生成了一个xrange对象 步长默认为1,可省略

    a = xrange(1,10)

    print a-->xrange(1,10)

    b = range(1.5)

    print b-->[1,2,3,4]

    用法:

    1.当我们需要操作一个非常大的数据,而且内存比较吃紧的时候,我们可以用xrange来操作,节省内存

    2.xrange一般用在循环里,比如我们只需要操作部分数据的话,而不是返回全部元素来完成操作,推荐用xrange

    例如: for m in range(1000) -->[0-999] 生成一个list对象,并生成多个元素

        for m in xrange(1000) -->生成一个xrange对象,只生成0-10共11个元素,然后组合成对应的值

        生成字符串列表 ['this %s' %a for a in xrange(100)]

         生成元素元组列表 [(x,y) for x in range(2) for y in range(2)] -->[(0,0),(0,1),(1,0),(1,1)]

  • 相关阅读:
    git 常用命令
    SVG Sprite技术介绍
    添加样式(后台给字段note(left,height-auto ))
    assign,copy,retain,readonly,readwrite之间区别
    遍历(字典的遍历)
    Block
    loadView、viewDidLoad及viewDidUnload的关系
    IOS单例模式(Singleton单粒模式)
    模仿,后台
    仿站 通用套路
  • 原文地址:https://www.cnblogs.com/zhenniu/p/5037821.html
Copyright © 2020-2023  润新知