python亲和数_我的Python入门笔记(7)

四章、列表

Sparse is better than dense.——The Zen of Python

一、列表概述

列表(List)是Python中的一种数据结构,内置的可变序列。在形式上,列表的所有元素都放在一对中括号“[ ]”中,两个相邻的元素使用逗号“,”进行分割,在内容上,可以将整数、字符串、列表、元组、等任何类型的内容放入列表中,并且同一个列表中,元素的类型可以不同。

二、 列表的创建和删除

在Python中有多种创建列表的方法:

1.使用赋值运算符直接创建列表

在创建列表时,可以直接使用赋值运算符“=”直接将一个列表赋值给一个变量,语法格式如下:

listname = [ element1,element2,element3,···,element n]

listname: 列表的名称

element1 :列表中的元素

1 num = [220,284,1210,1184,26]2 strlist=['雨霓同学','年龄','性别',['编号,组成']]3 strlist2 = ['150000001','男']4 print(num,strlist,strlist2)

在使用列表时,虽然可以将不同类型的数据放入到同一列表中,但是通常情况下,并不会这样做,而是在一个列表中只放入一种类型的数据,这样可以提高程序的可读性。

2.创建空列表

在Python中,眱创建空列表,例如创建一个名为ceshilist的空列表,则可以使用如下代码:ceshilist = [].

3. 创建数值列表

在Python中,可以使用list()函数直接将range()函数循环出来的结果转换为列表。list()函数的基本语法如下:

list(data)    其中data表示可以转换为列表的数据,其类型可以是range对象、字符串、元组或者其他可迭代的类型数据。

list1=list(range(0,10,2))print(list1)

输出:

[0,2, 4, 6, 8]

4.删除列表

对于已经创建的列表,不在使用时,可以使用del语句将其删除。语法格式为:del listname  listname为要删除列表的名称。一般这玩意不太用。在Python自带的垃圾回收机制会自动销毁不用的列表,所以即使我们不手动将其删除,Python也会将其自动回收。但是列表要是不存在,在进行删除操作时,则会报错。

三、访问列表元素

在Python中,可以直接使用print()函数将列表内容进行输出

1 list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 print(list1)3 输出:4 ['雨霓同学', 220, 284, '亲和数对:1210&1184', ['人生苦短,我用python']]

从上述实例可以看出,在输出列表时,是包括左右两侧的中括号的。如果不想要输出全部元素,也可以通过列表的索引获取指定的元素。这与之前的访问序列的方法是一样的。

3.1 遍历列表

遍历列表中的所有元素是常用的一种操作,在遍历的过程中可以完成查询、处理等功能,Python中遍历列表的方法有多种。可以使用如下的方法进行列表的遍历。

1.直接使用for循环实现

使用for循环遍历列表,只能输出元素的值,其语法格式如下:

for item in listname

item:用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可

listname:列表名称

示例如下:

1 list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 for item inlist1:3 print(item)4 输出:5 雨霓同学6 220

7 284

8 亲和数对:1210&1184

9 ['人生苦短,我用python']

2.使用for循环和enumerate()函数实现

使用for循环和enumerate()函数可以实现同时输出索引值和元素的功能,其语法格式如下:

for index,item in enumerate(listname)

index:用于保存元素的索引

item:用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可。

listname:列表的名称

示例如下:

1 list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 for index,item inenumerate(list1):3 print(index+1,item)4 输出:5 1雨霓同学6 2 220

7 3 284

8 4 亲和数对:1210&1184

9 5 ['人生苦短,我用python']

3.2 添加、修改和删除列表元素

添加、修改和删除列表元素也称为更新列表。在实际开发时,经常需要对列表进行更新。

1.添加元素

在前面介绍过,通过“+”可以将两个序列连接,通过该方法也可以实现列表元素的添加。但是这种方法的执行速度要比直接使用列表对象的append()方法慢,所以一般使用append()方法在列表的末尾追加元素,其语法格式如下:

listname.append(obj)

listname:要添加元素的列表名称

obj : 要添加到列表末尾的对象

示例如下:

list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]

list1.append("你猜猜这是啥")print(list1)

输出:

['雨霓同学', 220, 284, '亲和数对:1210&1184', ['人生苦短,我用python'], '你猜猜这是啥']

列表对象除了提供append()方法向列表中添加元素,还提供了insert()方法向列表中添加元素。该方法用于向列表的指定位置插入元素。但是该方法的执行效率没有append()方法高一般不建议使用,其语法格式如下:

listname.insert(index,obj) #其中index:为要插入位置的索引

此外,如果想要将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的extend()方法,其语法格式如下:

listname.extend(seq)

listname:原列表,seq:要添加的列表。语句执行后,seq的内容将添加到listname的后面

有没有一种方法,将一个列表添加到另一个列表的任意位置。

2.修改元素

修改列表中的元素,只需要通过索引获得该元素,然后再为其重新赋值即可,示例如下:

1 list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 list1[2]=1210

3 print(list1)4 输出:5 ['雨霓同学', 220, 1210, '亲和数对:1210&1184', ['人生苦短,我用python']]

3.删除元素

删除元素主要有两种情况,一种是根据索引删除,一种是根据元素值删除。

根据索引删除:删除列表中的指定元素和删除列表类似,也可以使用del语句实现,所不同的是在指定列表名称时,换为列表元素。示例如下:

1 list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 del list1[-1] #删除最后一个元素

3 print(list1)4 输出:5 ['雨霓同学', 220, 284, '亲和数对:1210&1184']

使用pop()方法删除:pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,语法格式如下:

list.pop([index=-1])

1 list1=[220,284,1210,1184,26,22,45]2 list2=list1.pop(1)3 print("删除的项为:",list2)4 print("现在的列表为:",list1)5 输出:6 删除的项为: 284

7 现在的列表为: [220, 1210, 1184, 26, 22, 45]

根据元素值删除:想要删除一个不确定其位置的元素(根据元素值进行删除),可以使用列表对象的remove()方法实现,示例如下:

1 list1=['雨霓同学',220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 list1.remove(284) #删除最后一个元素

3 print(list1)4 输出:5 ['雨霓同学', 220, '亲和数对:1210&1184', ['人生苦短,我用python']]

但是在使用remove()方法删除元素前,应该先判断元素是否存在,然后再进行删除,如果指定元素不存在,则会提示报错。

4.对列表元素进行统计计算

在Python列表中,提供了一些内置函数实现统计、计算等方面的功能。

4.1 获取指定元素出现的次数

使用列表对象的count()方法可以获取指定元素在列表中出现的次数,其基本语法格式如下:

listname.count(obj)

listname:表示列表的名称

obj:表示要判断是否存在的对象,这里只能进行精确匹配,即不能是元素值的一部分。

示例如下:

1 list1=['雨霓同学',220,284,220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 num=list1.count(220)3 print(num)4 输出:5 2

4.2获取指定元素首次出现的索引

使用列表对象的index()方法可以获取指定元素在列表中首次出现的位置(索引),基本语法格式:

listname.index(obj)

listname:列表的名称

obj:表示要查找的对象,只能进行精确匹配,如果指定对象不存在则会抛出异常。

示例如下:

1 list1=['雨霓同学',220,284,220,284,"亲和数对:1210&1184",['人生苦短,我用python']]2 num=list1.index(220)3 print(num)4 输出:5 1

4.3统计数值列表的元素和

在Python中,提供了sum()函数用于统计数值列表中各种元素的和,其语法格式如下:

sum(iterable [,start ])

interable:表示要统计的列表

start:表示统计结果是从哪个数开始(即将统计结果加上start所指定的数),可选参数,如果没有指定,默认值为0.

示例如下:

1 list1=[220,284,1210,1184,26,22,45]2 total=sum(list1)3 print(total)4 输出:5 2991

5.对列表进行排序

在Python中提供了两种常用的方法对列表进行排序:使用列表对象的sort()方法和使用内置的sorted()函数。

1.使用列表对象的sort()方法实现

列表对象提供了sort()方法用于对原列表中的元素进行排序。排序后原列表中的元素数学将发生改变,其语法格式如下:

listname.sort(key=none,reverse=False)

listname:表示要进行排序的列表

key:表示指定一个从每个列表元素中提取一个用于比较的键(例如:设置“key=str.lower”表示在排序时不区分大小写。)

reverse:可选参数,如果将其指定为True,则表示降序排序,如果为False,则表示升序排序,默认为升序排序。

示例如下:

1 list1=[220,284,1210,1184,26,22,45]2 print("初始列表:",list1) #默认列表

3 list1.sort()4 print("升序列表:",list1) #升序列表

5 list1.sort(reverse=True)6 print("降序列表",list1) #降序列表

7 输出:8 初始列表: [220, 284, 1210, 1184, 26, 22, 45]9 升序列表: [22, 26, 45, 220, 284, 1184, 1210]10 降序列表 [1210, 1184, 284, 220, 45, 26, 22]

此外在使用sort()方法对字符串列表进行排序,采用的规则是先对大写字母排序,然后在对小写字母排序。如果想要对字符串列表排序(不区分大小写),则需要指定Key参数。

示例如下:

1 listname=["pet",'Brother','Tom','Age','years','Bat']2 listname.sort()3 print('区分大小写:',listname)4 listname.sort(key=str.lower)5 print('不区分大小写:',listname)6 输出:7 区分大小写: ['Age', 'Bat', 'Brother', 'Tom', 'pet', 'years']8 不区分大小写: ['Age', 'Bat', 'Brother', 'pet', 'Tom', 'years']

采用sort()方法对列表进行排序的时候,对中文支持很不友好,排序结果与常用的音序和笔画排序都不一样,如果需要实现对中文的排序,需要重新编写想要的方法进行处理,不能直接使用sort()方法。

2.使用内置的sorted()函数实现

在Python中,提供了一个内置的sorted()函数,用于对列表进行排序。使用该函数排序后,原列表的元素顺序不变,其语法格式如下:

sorted(interable,key=none,reverse=False)

inerable:表示要进行排序的列表名称。

key:表示指定一个从每个列表中提取一个用于比较的键,

revese:可选参数,如果将其指定为True,则表示降序排列;如果为False表示升序排列。默认为升序排列。

示例如下:

1 list1=[220,284,1210,1184,26,22,45]2 list2=sorted(list1)3 print("升序:",list2)4 list3=sorted(list1,reverse=True)5 print('降序:',list3)6 print('原序列',list1)7 输出:8 升序: [22, 26, 45, 220, 284, 1184, 1210]9 降序: [1210, 1184, 284, 220, 45, 26, 22]10 原序列 [220, 284, 1210, 1184, 26, 22, 45]

列表对象的sort()方法,在排序时会改变原列表的元素排列顺序,而使用sorted()函数时,会建立一个原列表的副本,改副本为排序后的列表。

6.列表推导式

使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表,其常用语法格式如下:

1. 生成指定范围的数值列表

list = [expression for vat in range]

list: 表示要生成的列表名称

exprsessiom: 表达式,用于计算新列表的元素

var:循环变量

range: 采用range()函数生成的range对象

示例如下:

1 #生成一个包括10个随机数的列表,范围在10~100之间

2 import random #导入random(随机数)

3 random_numbers=[random.randint(10,100) for i in range(10)]4 print("生成的随机数:",random_numbers)5 输出:6 生成的随机数: [60, 44, 72, 89, 81, 64, 75, 70, 77, 37]

2.根据列表生成指定需求的列表

newlist = [expressiom for var in list]

newlist: 表示新生成的列表名称

expression:表达式泳衣计算新列表元素

var:变量,值为后面列表的每个元素值

list:用于生成新列表的原列表

示例如下:

1 price=[220,284,1210,1184,26]2 sale =[int(x*0.5) for x inprice]3 print("原始价格:",price)4 print("打五折价格:",sale)5 输出:6 原始价格: [220, 284, 1210, 1184, 26]7 打五折价格: [110, 142, 605, 592, 13]

3.从列表中选择符合条件的元素组成新的列表

newlist=[Expression for var in list if condition]

newlist:新生成列表的名称

Expression: 表达式,用于计算新列表的元素

var: 变量,值为后面列表的每个元素值。

list:用于生成新列表的原始列表

condition:条件表达式,用于指定筛选条件。

1 price=[220,284,1210,1184,26]2 sale =[x for x in price if x > 256]3 print("原始价格:",price)4 print("价格高于256的:",sale)5 输出:6 原始价格: [220, 284, 1210, 1184, 26]7 价格高于256的: [284, 1210, 1184]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值