赞
踩
列表的创建:
基本语法 [] 创建
- a = [10,20,'suyi','sxt']
- b = [] #创建一个空列表对象
- print(a) #执行结果:[10, 20, 'suyi', 'sxt']
list() 创建
使用 list() 可以将任何可迭代的数据转换成列表。
- a = list() #创建一个空的列表对象
- b = list(range(10))
- print(b) #执行结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- c = list("suyi,sxt")
- print(c) #执行结果:['s', 'u', 'y', 'i', ',', 's', 'x', 't']
range() 创建整数列表
range() 可以帮助创建整数列表,语法格式为:range([start,] end [,step])
start 参数:可选,表示起始数字。默认是 0
end 参数:必选,表示结尾数字
step 参数:可选,表示步长,默认为 1
- a = list(range(3,15,2)) #从 3 开始,到 15 结束(不包含 15) 步长是 2
- print(a) #运行结果:[3, 5, 7, 9, 11, 13]
- b = list(range(15,9,-1))
- print(b) #运行结果:[15, 14, 13, 12, 11, 10]
- c = list(range(3,-4,-1))
- print(c) #运行结果:[3, 2, 1, 0, -1, -2, -3]
推导式生成列表
使用列表推导式可以非常方便的创建列表,涉及到 for 循环和 if 语句
a = [x * 2 for x in range(5)] 其中循环 x 分别等于 [0,1,2,3,4] 再 x * 2 后输出 [0,2,4,6,8]
b = [x * 2 for x in range(100)if x%9==0] 其中x等与于 [ 0 ,100)中可以整除 9 的数,再 x * 2 后输出
- #循环创建多个元素[0,2,4,6,8]
- a = [x*2 for x in range(5)]
- print(a) #执行结果:[0, 2, 4, 6, 8]
- #通过 if 过滤元素[0,18,36,54,72,90,108,126,144,162,180,198]
- b = [x*2 for x in range(100)if x%9==0]
- print(b) #执行结果:[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
列表元素的增加(推荐尾部添加、删除元素):
不生成新的列表对象:append() insert() extend()
生成新的列表对象: +(加号)尾部添加 生成新列表 * (乘号)乘法扩展 生成新列表
当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这个特点涉及到列表元素的大量移动,效率较低。
除非必要,一般只在列表尾部添加元素或删除元素,大大提高列表的操作效率。
append()方法:
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。
- a = [20,40]
- a.append(80)
- print(a) #执行结果:[20, 40, 80]
+ 运算符的操作:
并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。这种方法会涉及大量的操作,对于操作大量元素不建议使用。
- a = [20,40]
- print(id(a)) #执行结果:2216246333960
- a = a + [50]
- print(id(a)) #执行结果:2216247610312
通过以上测试样例,发现变量 a 的地址发生了变化,也就是创建了新的列表对象。
extend() 方法:
将目标列表的所有元素添加到本列表的尾部,不创建新的列表对象。
- a = [20,40]
- print(id(a)) #执行结果:1716529484296
- b = [50,60]
- a.extend(b) #原对象修改
- print(id(a)) #执行结果:1716529484296
- print(a) #执行结果:[20, 40, 50, 60]
- a = a + b #产生新对象
- print(id(a)) #执行结果:1716534299528
insert() 插入元素:
使用 insert() 方法可以将指定的元素插入到列表对象的任意指定位置。使插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove() 、pop() 、del() ,它们在删除非尾部元素时也会发生操作位置后面元素的移动。
- a = [10,20,30]
- a.insert(2,100)
- print(a) #执行结果:[10, 20, 100, 30]
*乘法扩展:
使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。
- a = ['sxt',100]
- b = a*3
- print(a) #执行结果:['sxt', 100]
- print(b) #执行结果:['sxt', 100, 'sxt', 100, 'sxt', 100]
适用于乘法操作的,还有字符串、元组。例如:
- c = "sxt"
- d = c*3
- print(d) #执行结果:sxtsxtsxt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。