《 Python List列表全实例详解系列(二)》
__创建列表(5种方式)
上一篇:《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念
本章目录:
二、创建列表(5种方式)
(2.1)、使用 [ ] 创建list列表 | |
可以用方括号直接创建元组,括号里的元素用逗号隔开。当[ ]内不存在任何元素时,便创建了一个空列表。一般使用=将它赋值给某个变量。 | |
语 法 | listname = [element1 , element2 , element3 , ... , elementn] |
参 数 | listname 表示变量名, element1 ~ elementn 表示列表元素。 |
注 意 | 使用此方式创建列表时,列表中元素可以有多个,也可以一个都没有 |
返 回 值 | 返回列表 |
知识拓展 | |
实 例 | |
代 码 | #用内置函数type()查看变量num引用对象的类型,如果是<class 'list'>,即为list,列表创建成功 num = [1,2,3,4,5,6,7,8] print(type(num)) print(num) |
运行结果 | <class 'list'> [1, 2, 3, 4, 5, 6, 7, 8] |
代 码 | web = ["www.csdn.net"] print(type(web)) print(web) |
运行结果 | <class 'list'> ['www.csdn.net'] |
代 码 | prolans = ["Python", "Java","C语言","OpenCV","PostgreSQL","CUDA","CS"] prolans1 = ['Python','Java','C语言','OpenCV','PostgreSQL','CUDA','CS'] print(type(prolans)) print(prolans) print(type(prolans1)) print(prolans1) |
运行结果 | <class 'list'> ['Python', 'Java', 'C语言', 'OpenCV', 'PostgreSQL', 'CUDA', 'CS'] <class 'list'> ['Python', 'Java', 'C语言', 'OpenCV', 'PostgreSQL', 'CUDA', 'CS'] |
代 码 | #定义了一个空的列表,变量emptylist相当于一个贴在其上的标签 emptylist = [ ] print(type(emptylist)) print(emptylist) |
运行结果 | <class 'list'> [] |
代 码 | mlist =['6', 8, '逆境清醒','Adversity Awake','( ^@^)'] print(type(mlist)) print(mlist) |
运行结果 | <class 'list'> ['6', 8, '逆境清醒', 'Adversity Awake', '( ^@^)'] |
代 码 | mlist =["萤火明晰双眼","辨分真与假",0,-1, [5,6,7], 6.139,'Adversity Awake'] print(type(mlist)) print(mlist) |
运行结果 | <class 'list'> ['萤火明晰双眼', '辨分真与假', 0, -1, [5, 6, 7], 6.139, 'Adversity Awake'] |
代 码 | mlist = list("ad‘s\ni#t@y A\tk%e8\r9") print(mlist) |
运行结果 | ['a', 'd', '‘', 's', '\n', 'i', '#', 't', '@', 'y', ' ', 'A', '\t', 'k', '%', 'e', '8', '\r', '9'] |
(2.2)、使用 list() 函数创建列表 | |
Python 还提供了一个内置的函数 list(),使用它可以将其它数据类型转换为列表类型。 list()函数实质是把目标对象转为列表的类型。同直接创建列表的方式很像,这里是在list()函数后面用圆括号将目标对象转为列表类型。 可以在list的圆括号中放入建立列表需要的元素,这些元素放入时必须是一个元组对象或者是一个列表对象,不可以直接将元素列进list()函数中的括号里,也可以将某一变量放进去,list()函数会帮助我们自动将元素转为列表的形式。 同样,如果没有传入任何元素,将创建一个空的列表。 | |
语 法 | list( tup ) |
参 数 | tup -- 要转换为列表的元组 |
注 意 | 元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。 |
返 回 值 | 返回列表 |
知识拓展 | |
实 例 | |
代 码 | #将字符串转换成列表 mlist = list("Adversity Awake") print(mlist) |
运行结果 | ['A', 'd', 'v', 'e', 'r', 's', 'i', 't', 'y', ' ', 'A', 'w', 'a', 'k', 'e'] |
代 码 | #将元组转换成列表 tuple1 = ("Python", "Java","C语言","OpenCV") mlist = list(tuple1) print(mlist) |
运行结果 | ['Python', 'Java', 'C语言', 'OpenCV'] |
代 码 | #将字典转换成列表 dict1 = {'红苹果':"红色", '香蕉':"黄色", '橘子':"橙色"} mlist = list(dict1) print(mlist) |
运行结果 | ['香蕉', '红苹果', '橘子'] |
代 码 | #将区间转换成列表 range1 = range(0, 8) mlist = list(range1) print(mlist) |
运行结果 | [0, 1, 2, 3, 4, 5, 6, 7] |
代 码 | #创建空列表 print(list()) |
运行结果 | [] |
代 码 | list1=["萤火明晰双眼","辨分真与假",0,-1, [5,6,7], 6.139,'Adversity Awake'] mlist = list(list1) print(mlist) |
运行结果 | ['萤火明晰双眼', '辨分真与假', 0, -1, [5, 6, 7], 6.139, 'Adversity Awake'] |
代 码 | num=1,2,3,4,5 mlist=list(num) print(mlist) |
运行结果 | [1, 2, 3, 4, 5] |
更多实例请访问:《 list()函数实例详解 》 |
(2.3)、由原有列表切片创建列表副本 | |
语 法 | #创建完整副本 Listname2 = Listname1 [ : ] |
参 数 | |
注 意 | 使用切片是浅列表复制 |
返 回 值 | 返回列表 |
知识拓展 | |
实 例 | |
代 码 | mlist = list("Adversity Awake") mlist5 = mlist[ : ] print(type(mlist5)) print(mlist5) |
运行结果 | <class 'list'> ['A', 'd', 'v', 'e', 'r', 's', 'i', 't', 'y', ' ', 'A', 'w', 'a', 'k', 'e'] |
代 码 | mlist = list(("苹果", "雪梨", "香蕉", "草莓", "菠萝", "桃子")) mlist5 = mlist[ : ] print(type(mlist5)) print(mlist5) |
运行结果 | <class 'list'> ['苹果', '雪梨', '香蕉', '草莓', '菠萝', '桃子'] |
代 码 | mlist =[] mlist5 = mlist[ : ] print(type(mlist5)) print(mlist5) |
运行结果 | <class 'list'> [] |
代 码 | #创建具有mlist前4个元素的mlist5 mlist = list(("苹果", "雪梨", "香蕉", "草莓", "菠萝", "桃子")) mlist5 = mlist[0:4] print(type(mlist5)) print(mlist5) |
运行结果 | <class 'list'> ['苹果', '雪梨', '香蕉', '草莓'] |
代 码 | #创建具有mlist从第6个开始到第12-1个元素的mlist5 mlist = list("Adversity Awake") mlist5 = mlist[6:12] print(type(mlist5)) print(mlist5) |
运行结果 | <class 'list'> ['i', 't', 'y', ' ', 'A', 'w'] |
代 码 | #创建具有mlist前2个元素的mlist5 mlist=["萤火明晰双眼","辨分真与假",0,-1, [5,6,7], 6.139,'Adversity Awake'] mlist5 = mlist[0:2] print(type(mlist5)) print(mlist5) |
运行结果 | <class 'list'> ['萤火明晰双眼', '辨分真与假'] |
代 码 | mlist= [1,2,3,4,5] mlist2= list(mlist) print(mlist2) |
运行结果 | [1, 2, 3, 4, 5] |
(2.4)、由列表推导式创建列表 | |
list comprehension列表推导式,是一种创建列表的简洁语法;它是一个简版的for循环,但执行效率高于for循环。 除了列表推导式,还有集合推导式、字典推导式,原理与列表推导式相近。 | |
语法规范:out_list = [out_express for out_express in input_list if out_express_condition] 其中,if 条件可有可无; for 循环可以嵌套多层,内外层循环的变量不可以同名; 推导式中也可以嵌套推导式,内外层推导式的变量互不影响,可以同名; 推导表达式out_express尽可能用内置函数,省得 import 或 def function()。 | |
实 例 | |
代 码 | mlist=[ i ** 2 for i in range (5)] print(mlist) |
运行结果 | [0, 1, 4, 9, 16] |
代 码 | mlist=[i+j for i in range(3) for j in range(5)] |
运行结果 | [0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6] |
代 码 | mlist=[i for i in range(10) if i%2==0] |
运行结果 | [0, 2, 4, 6, 8] |
代 码 | #让我们创建一个属于“mlist”列表的偶数列表: mlist=[ i ** 2 for i in range( 10 ) ] mlistB =[ i for i in mlist if i%2==0 ] print(mlist) print(mlistB) |
运行结果 | [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] [0, 4, 16, 36, 64] |
代 码 | mlist= [i**2 for i in range(15)] mlistB = [i for i in mlist if i%4==0] print(mlist) print(mlistB) |
运行结果 | [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196] [0, 4, 16, 36, 64, 100, 144, 196] |
代 码 | mlist= [0,2,4,6,8,'Adversity Awake', '逆境清醒'] mlistB= [mlist[len(mlist)-i-1] for i in range(len(mlist))] print(mlistB) |
运行结果 | ['逆境清醒', 'Adversity Awake', 8, 6, 4, 2, 0] |
代 码 | # 用列表推导式过滤出列表中的偶数: # -*- coding: UTF-8 -*- if __name__ == '__main__': mlist=[4,7,7,1,9,5,2,6,0,8] print("列表:",mlist) print("用列表推导式过滤出列表中的偶数:") filternum = [num for num in mlist if num % 2 == 0] print(filternum) print('') |
运行结果 | [4, 2, 6, 0, 8] |
代 码 | #用列表推导式过滤出列表中的奇数: |
运行结果 | [7, 7, 1, 9, 5] |
代 码 | # 用列表推导式过滤出晴天的日子 # -*- coding: UTF-8 -*- if __name__ == '__main__': mlist = [ {"key": "第一天", "值": "天晴朗,那花儿朵朵绽放","标签": ["晴天"]}, {"key": "第二天", "值": "山青青,水蓝蓝", "标签": ["晴天"]}, {"key": "第三天", "值": "看日出,看云海", "标签": ["晴天"]}, {"key": "第四天", "值": "车窗外,雨好大", "标签": ["雨天"]}, {"key": "第五天", "值": "荷叶下,躲着一只小青蛙","标签": ["雨天"]}, {"key": "第六天", "值": "彩虹桥,路弯弯", "标签": ["晴天"]} ] print("过滤出晴天的日子") sundays = [day for day in mlist if '晴天' in day["标签"]] for days in sundays: print(" [{}]: {}".format(days['key'], days['值'])) print('') |
运行结果 | [第一天]: 天晴朗,那花儿朵朵绽放 [第二天]: 山青青,水蓝蓝 [第三天]: 看日出,看云海 [第六天]: 彩虹桥,路弯弯 |
代 码 | # 用列表推导式过滤出雨天的日子 # -*- coding: UTF-8 -*- if __name__ == '__main__': mlist = [ {"key": "第一天", "值": "天晴朗,那花儿朵朵绽放","标签": ["晴天"]}, {"key": "第二天", "值": "山青青,水蓝蓝", "标签": ["晴天"]}, {"key": "第三天", "值": "看日出,看云海", "标签": ["晴天"]}, {"key": "第四天", "值": "车窗外,雨好大", "标签": ["雨天"]}, {"key": "第五天", "值": "荷叶下,躲着一只小青蛙","标签": ["雨天"]}, {"key": "第六天", "值": "彩虹桥,路弯弯", "标签": ["晴天"]} ] print("过滤出雨天的日子") raindays = [day for day in mlist if '雨天' in day["标签"]] for days in raindays: print(" [{}]: {}".format(days['key'], days['值'])) print('') |
运行结果 | [第四天]: 车窗外,雨好大 [第五天]: 荷叶下,躲着一只小青蛙 |
代 码 | mlist =[] |
运行结果 | [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9]] |
代 码 | #分别从两个列表中取出所有的元素,再放入新列表中 |
运行结果 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
(2.5)、由copy 创建列表 | |
有时需要在保存原来的列表数据的同时对这个列表进行变更操作,此时会用到copy方法。copy方法能够创建一个完全一样的列表,虽然意思上是一样的列表,但只是元素一样,copy后的一个列表已经是一个新的列表。 | |
如果在修改新列表时需要原始列表保持不变,则可以使用copy()方法。这称为浅拷贝。 | |
语 法 | new_list = list.copy() copy1 = copy.copy(origin) copy2 = deepcopy(origin) |
参 数 | 没有任何参数。 |
注 意 | " = " 即一般意义的复制,浅复制 列表切片等价于深复制 |
返 回 值 | copy()函数返回一个列表。它不会修改原始列表。 |
知识拓展 | copy1 = mlist copy2 = mlist.copy() copy3 = deepcopy(mlist) copy1是 mlist 的引用(别名),所以输出结果都是一致的, copy2 父对象进行了深拷贝,不会随mlist 修改而修改,子对象是浅拷贝所以随 mlist 的修改而修改。 copy3是 mlist 的深拷贝. |
实 例 | |
代 码 | import copy from copy import deepcopy mlist= [3,8,[3,4],5,1,8,21,46,35] copy1 = mlist copy2 = mlist.copy() copy3 = deepcopy(mlist) print("mlist: ",mlist,id(mlist)) print("copy1: ",copy1,id(copy1)) print("copy2: ",copy2,id(copy2)) print("copy3: ",copy3,id(copy3)) print("mlist is copy1: ",mlist is copy1) print("mlist is copy2: ",mlist is copy2) print("mlist is copy3: ",mlist is copy3) |
运行结果 | mlist: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] 12802968 copy1: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] 12802968 copy2: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] 12447576 copy3: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] 12803728 mlist is copy1: True mlist is copy2: False mlist is copy3: False |
代 码 | import copy from copy import deepcopy mlist= [3,8,[3,4],5,1,8,21,46,35] copy1 = mlist copy2 = mlist.copy() copy3 = deepcopy(mlist) print("mlist: ",mlist) mlist[7:7] = [38624,42638] print("mlist: ",mlist) print("copy1: ",copy1) print("copy2: ",copy2) print("copy3: ",copy3) #copy1是 mlist 的引用(别名),所以输出结果都是一致的,随mlist 修改而修改 #copy2 父对象进行了深拷贝,不会随mlist 修改而修改 #copy3是 mlist 的深拷贝,不会随mlist 修改而修改 |
运行结果 | mlist: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] mlist: [3, 8, [3, 4], 5, 1, 8, 21, 38624, 42638, 46, 35] copy1: [3, 8, [3, 4], 5, 1, 8, 21, 38624, 42638, 46, 35] copy2: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] copy3: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] |
代 码 | import copy from copy import deepcopy mlist= [3,8,[3,4],5,1,8,21,46,35] copy1 = mlist copy2 = mlist.copy() copy3 = deepcopy(mlist) print("mlist: ",mlist) mlist[2][0] = "change!" print("mlist: ",mlist) print("copy1: ",copy1) print("copy2: ",copy2) print("copy3: ",copy3) #copy1是 mlist 的引用(别名),所以输出结果都是一致的,随mlist 修改而修改 #copy2 父对象进行了深拷贝,子对象是浅拷贝所以随 mlist 的修改而修改。 #copy3是 mlist 的深拷贝,不会随mlist 修改而修改 |
运行结果 | mlist: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] mlist: [3, 8, ['change!', 4], 5, 1, 8, 21, 46, 35] copy1: [3, 8, ['change!', 4], 5, 1, 8, 21, 46, 35] copy2: [3, 8, ['change!', 4], 5, 1, 8, 21, 46, 35] copy3: [3, 8, [3, 4], 5, 1, 8, 21, 46, 35] |
代 码 | #-*- coding: UTF-8 -*- import copy mlist= ["人都应该有梦","有梦就别怕痛"] copy1 =mlist copy2 = mlist.copy() print("原来的 mlist : ",mlist) print("原来的 copy1 : ",copy1) print("原来的 copy2 : ",copy2) mlist.append('要相信') mlist.append('这个世界美好总要多过阴暗') print("现在的 mlist: ",mlist) print("现在的 copy1: ",copy1) print("现在的 copy2: ",copy2) |
运行结果 | 原来的 mlist : ['人都应该有梦', '有梦就别怕痛'] 原来的 copy1 : ['人都应该有梦', '有梦就别怕痛'] 原来的 copy2 : ['人都应该有梦', '有梦就别怕痛'] 现在的 mlist: ['人都应该有梦', '有梦就别怕痛', '要相信', '这个世界美好总要多过阴暗'] 现在的 copy1: ['人都应该有梦', '有梦就别怕痛', '要相信', '这个世界美好总要多过阴暗'] 现在的 copy2: ['人都应该有梦', '有梦就别怕痛'] |
代 码 | |
运行结果 |
请点击查看下一章 ------》
逆境清醒 Python List列表——全实例详解系列 | ||
![]() | ||
1 | 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念 | |
2 | 《 Python List 列表全实例详解系列(二)》__创建列表(5种方法) | |
3 | 《 Python List 列表全实例详解系列(三)》__列表添加元素(4种方法) | |
4 | 《 Python List列表全实例详解系列(四)》__列表删除元素(4种方法)删除重复元素方法 | |
5 | 《 Python List 列表全实例详解系列(五)》__修改元素(修改单个、修改一组) | |
6 | 《 Python List 列表全实例详解系列(六)》__查找元素 | |
7 | 《 Python List 列表全实例详解系列(七)》__索引和切片 | |
8 | 《 Python List 列表全实例详解系列(八)》__随机列表元素 | |
9 | 《 Python List 列表全实例详解系列(九)》__列表反转(6种方法) | |
10 | 《 Python List 列表全实例详解系列(十)》__清空列表 | |
11 | 《 Python List 列表全实例详解系列(十一)》__列表运算符 | |
12 | 《 Python List 列表全实例详解系列(十二)》__列表内置及常用函数 | |
13 | 《 Python List 列表全实例详解系列(十三)》__相关技巧 | |
14 | 《 Python List 列表全实例详解系列(十四)》__列表练习实例 | |
推荐阅读:
29 |
| svg实例详解系列 |
28 |
| |
27 |
| |
26 |
| 2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子 |
25 |
| 2023春节祝福系列第一弹(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载) |
24 |
| |
23 |
| |
22 |
| |
21 |
| python爱心源代码集锦 |
20 |
| 巴斯光年python turtle绘图__附源代码 |
19 |
| Three.js实例详解___旋转的精灵女孩(附完整代码和资源) |
18 |
| |
17 |
| |
16 |
| |
15 |
| |
14 |
| |
13 |
| |
12 |
| |
11 |
| 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心) |
10 |
| |
9 |
| |
8 |
| |
7 |
| |
6 |
| |
5 |
| |
4 |
| |
3 |
| |
2 |
| |
1 |
|