当前位置:   article > 正文

Python学习(12)|创建列表的四种方式_推导式创建列表_列表中添加元素的5种方式_效率问题_如何建立列表

如何建立列表

34-创建列表的4种方式-推导式创建列表

列表的创建:

基本语法 [] 创建

  1. a = [10,20,'suyi','sxt']
  2. b = [] #创建一个空列表对象
  3. print(a) #执行结果:[10, 20, 'suyi', 'sxt']

list() 创建

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

  1. a = list() #创建一个空的列表对象
  2. b = list(range(10))
  3. print(b) #执行结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  4. c = list("suyi,sxt")
  5. print(c) #执行结果:['s', 'u', 'y', 'i', ',', 's', 'x', 't']

range() 创建整数列表

range() 可以帮助创建整数列表,语法格式为:range([start,] end [,step])

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

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

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

  1. a = list(range(3,15,2)) #从 3 开始,到 15 结束(不包含 15) 步长是 2
  2. print(a) #运行结果:[3, 5, 7, 9, 11, 13]
  3. b = list(range(15,9,-1))
  4. print(b) #运行结果:[15, 14, 13, 12, 11, 10]
  5. c = list(range(3,-4,-1))
  6. 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 后输出

  1. #循环创建多个元素[0,2,4,6,8]
  2. a = [x*2 for x in range(5)]
  3. print(a) #执行结果:[0, 2, 4, 6, 8]
  4. #通过 if 过滤元素[0,18,36,54,72,90,108,126,144,162,180,198]
  5. b = [x*2 for x in range(100)if x%9==0]
  6. print(b) #执行结果:[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

35-列表-元素的5中添加方式-效率问题

列表元素的增加(推荐尾部添加、删除元素):

不生成新的列表对象:append() insert() extend()

生成新的列表对象: +(加号)尾部添加 生成新列表 * (乘号)乘法扩展 生成新列表

当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这个特点涉及到列表元素的大量移动,效率较低。

除非必要,一般只在列表尾部添加元素或删除元素,大大提高列表的操作效率。

append()方法:

原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。

  1. a = [20,40]
  2. a.append(80)
  3. print(a) #执行结果:[20, 40, 80]

+ 运算符的操作:

并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。这种方法会涉及大量的操作,对于操作大量元素不建议使用。

  1. a = [20,40]
  2. print(id(a)) #执行结果:2216246333960
  3. a = a + [50]
  4. print(id(a)) #执行结果:2216247610312

通过以上测试样例,发现变量 a 的地址发生了变化,也就是创建了新的列表对象。

extend() 方法:

将目标列表的所有元素添加到本列表的尾部,不创建新的列表对象。

  1. a = [20,40]
  2. print(id(a)) #执行结果:1716529484296
  3. b = [50,60]
  4. a.extend(b) #原对象修改
  5. print(id(a)) #执行结果:1716529484296
  6. print(a) #执行结果:[20, 40, 50, 60]
  7. a = a + b #产生新对象
  8. print(id(a)) #执行结果:1716534299528

insert() 插入元素:

使用 insert() 方法可以将指定的元素插入到列表对象的任意指定位置。使插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove() 、pop() 、del() ,它们在删除非尾部元素时也会发生操作位置后面元素的移动。

  1. a = [10,20,30]
  2. a.insert(2,100)
  3. print(a) #执行结果:[10, 20, 100, 30]

*乘法扩展:

使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。

  1. a = ['sxt',100]
  2. b = a*3
  3. print(a) #执行结果:['sxt', 100]
  4. print(b) #执行结果:['sxt', 100, 'sxt', 100, 'sxt', 100]

适用于乘法操作的,还有字符串、元组。例如:

  1. c = "sxt"
  2. d = c*3
  3. print(d) #执行结果:sxtsxtsxt

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/944218
推荐阅读
相关标签
  

闽ICP备14008679号