列表、特点、内存分析
序列
序列是一种数据存储方式,用来存储一系列的数据。
常用的序列结构:字符串、列表、元祖、字典、集合。
定义一个列表:
a=[10,20,30,40]
序列中存储的是整数对象的地址,而不是整数对象的值。(Python中一切都是对象)
列表简介
列表是内置可变序列,包含多个有序的内存空间。语法格式: a=[10,20,30,40]
其中10,20,30,40称为a的元素。元素可以是任意类型。
python中列表大小可变。
字符串、列表都是序列类型。
字符串==字符序列
列表==任何元素的序列
创建列表的4种方式_推导式创建列表
列表创建
1、基本语法[]创建
>>> a=[10,20,30,"zhuyu"]
>>> a[3]
'zhuyu'
>>> b=[]
>>> #创建一个空列表
>>> b.append(20)
>>> b
[20]
2、list()创建
list()可以将任何可以迭代的数据转化为列表。
>>> a=list()#创建一个空的列表对象
>>> a=list("zhuyu")
>>> a
['z', 'h', 'u', 'y', 'u']
>>> #把字符串转成一个列表
>>> a=list(range(10))#把整数转换为序列
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3、通过range()创建整数列表
range()创建整数列表非常方便。
语法格式为:range([start,]end,[,step])
[start,]、[,step]是可选的。
>>> list(range(0,10,1))#起始是0,终止是10,步长是1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(0,10,2))#调整步长为2
[0, 2, 4, 6, 8]
>>> list(range(20,3,-1))#步长也可以为负数
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
4、推导式生成列表
需要用到if、for
>>> a=[x*2 for x in range(5)]#循环创建多个元素,在0,1,2,3,4,5分别乘以2
>>> a
[0, 2, 4, 6, 8]
>>> b=[x*2 for x in range(100) if x%9==0]#可以通过if设置条件,过滤元素(此处条件为可以被9整除的元素)
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]