列表的创建、特点以及内存分析

列表的创建(3种方式和推导式创建列表方法):

        1.基本语法[]创建

          >>>a=[10,20,30,40]

          >>>a=[]           #创建一个空的列表对象

         2.list()创建

            使用list()可以将任何可迭代的数据转化成列表

            >>>a=list()

            >>>a=list(range(10))

            >>>a

            [0,1,2,3,4,5,6,7,8,9]

            >>>a=list("hello world")

            >>>a

            ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

          3.range()创建整数列表

             range()可以帮我们非常方便的创建整数列表,这在开发中及其有用,语法格式:

                        range([start,],end.[,step])

                        start 参数:可选,表示起始数字,默认为0

                        end  参数:可选,表示结尾数字

                        step 参数: 可选,表示步长,默认为1

              Python3中range()发回的是一个range对象,而不是一个列表,我们需要通过list()方法将其转换成列表对象。

              例子:

                     >>>list(range(3,15,2))

                     [3,5,7,9,11,13]

                     >>>list(range(10,3,-1))

                     [10, 9, 8, 7, 6, 5, 4]

                     >>>list(range(3,-10,-1))

                     [3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

          4.推导式生成列表(简单介绍一下)

              使用列表推导式非常方便的创建列表,在开发中经常使用。

               例子:

                       >>>a=[x*2 for x in range(5)]

                       >>>a       

                       [0, 2, 4, 6, 8]

                       >>>a=[x*2 for x in range(100) if x%9==0]    #通过if过滤元素

                       >>>a

                       [0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

序列:

      序列是一种数据存储方式,用来存储一系列的数据,在内存中,序列就是一块用来存放多个值得连续的内存空间,比如一个整数序列[10,20,30,40],可以这样表示:

10 20 30 40

由于Python3中一切皆对象,在内存中实际是按照如下方式存储的

a=[10,20,30,40]

列表的创建、特点以及内存分析

从图中,可以看到序列中存储的是整数对象的地址,而不是整数对象的值,python中常用的序列结构有:

字符串,列表,元组,字典,集合

列表:用于存储任意数目、任意类型的数据集合

列表是内置可变序列,是包含多个元素的有序连续的内存空间,列表定义的标准语法格式:

a=[10,20,30,40]

其中,10,20,30,40这些称为,列表a的元素。

列表中的元素可以各不相同,可以任意类型,比如:

a=[10,20,30,"ab","cd",True]

列表对象的常用方法汇总,如下:

方法 要点 描述
list.append(x) 增加元素 将列表元素x增加到列表list尾部
list.extend(aList) 增加元素 将列表alist所有元素加到列表list尾部
list.insert(index,x) 增加元素 在列表list指定位置inidex处插入元素x
list.remove(x) 删除元素 在列表list中删除首次出现的指定元素x

list.pop([index])

删除元素 删除并返回列表list指定为止index处的元素,默认是最后一个元素
del list[index] 删除元素 按照列表list的index删除元素
list.clear() 删除所有元素 删除列表所有元素,并不是删除列表对象
list.index(x) 访问元素 返回第一个x的索引位置,若不存在x元素抛出异常
list.count(x) 计数 返回指定元素x在列表list中出现的次数
len(list) 列表长度 返回列表中包含元素的个数
list.reverse() 旋转列表 所有元素原地旋转
list.sort() 排序 所有元素排序
list.copy() 浅拷贝 返回列表对象的浅拷

Python的列表大小可变,根据需要随时增加或者缩小。 字符串和列表都是序列,一个字符串是一个字符序列,一个列表适任何元素的序列。 很多字符串的方法,在列表中也有类似的用法,几乎一模一样。