《 Python List列表全实例详解系列(二)》__创建列表(5种方式)

发布于:2023-01-15 ⋅ 阅读:(541) ⋅ 点赞:(0)

​​活动地址:CSDN21天学习挑战赛

《 Python List列表全实例详解系列(二)》

__创建列表(5种方式)

上一篇:《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

 

本章目录:

      二、创建列表(5种方式)

(2.1)、使用 [ ] 创建list列表

(2.2)、使用 list() 函数创建列表

(2.3)、由原有列表切片创建列表副本

(2.4)、由列表推导式创建列表

(2.5)、由copy 创建列表

 


二、创建列表(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)]
print(mlist)

运行结果

[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]
print(mlist)

运行结果

[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]

代  码

#用列表推导式过滤出列表中的奇数:
# -*- 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('')

运行结果

[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 =[]                                   
for i in range(10):
  next = [None,None]
  next[0] = i
  next[1] = i
  mlist.append(next)
print(mlist)

运行结果

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

代  码

#分别从两个列表中取出所有的元素,再放入新列表中
mlist3=[]
mlist1 =[1,2,3,4,5]   
mlist2 =[6,7,8,9,10]   
for i in mlist1:
    mlist3.append(i)
for i in mlist2:
    mlist3.append(i)
print(mlist3)

运行结果

[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 列表全实例详解系列(十四)》__列表练习实例

  

 推荐阅读:

14 ​​​
13 用代码过中秋,python海龟月饼你要不要尝一口?
12 Python List 列表(创建、索引和切片、列表反转、添加删除修改查找元素)__实例详解(全)
11 用代码写出浪漫合集(python 绘制爱心、玫瑰花,字符画爱心、前端特效玫瑰、爱心)
10 Python函数方法实例详解全集(更新中...)
9 matplotlib 自带绘图样式效果展示速查(全)
8 手机屏幕坏了____怎么把里面的资料导出(18种方法)
7 2022年9月多家权威机构____编程语言排行榜__薪酬状况
6 Python中Print()函数的用法___详解(全,例多)
5 色彩颜色对照表系列(1~5)(16进制、RGB、CMYK、HSV、中英文名)
4 Tomcat端口配置(详细)
3 Tomcat 启动闪退问题解决集(八大类详细)
2 Apache Tomcat 各版本发行时间( v10.1.0-M17~v3.0)
1 Tomcat10安装(Windows环境)(详细)


网站公告

今日签到

点亮在社区的每一天
去签到