python输出数字序列0 1 2 3 4 5_python从0到1:3.列表

本文详细介绍了Python中序列的基本操作,包括索引、切片、相加、乘法、成员检查、长度计算以及最大值和最小值的获取。此外,文章重点讲解了列表的创建、访问、遍历、添加、修改、删除元素,以及对列表进行统计计算和排序的方法,还涉及了列表推导式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.序列

序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称之索引或位置。通过该索引可以取出相应的值;(在python中内置了5个常用的序列结构:列表,元组,集合,字典和字符串)

1.1索引

序列中的每一个元素都有一个编号,也称为索引。注意这个索引是从0开始递增的。即下标为0表示第一个元素,下标1表示第二个元素。。。。

元素一

元素二

元素三

元素....

元素n

0                1             2            ....           n-1           

当然索引也可以是负数,这个索引从右向左计数,也就是从最后一个元素开始计数,即最后一个元素的索引值是-1

verse = ["圣安东尼奥马刺","洛杉矶湖人","休斯敦火箭","金州勇士"]print(verse[2])print(verse[-1])

输出结果:

休斯敦火箭

金州勇士

1.2 切片

切片操作是访问序列中元素的另一种方法,他可以访问一定范围内的元素。通过切片操作可以生成一个信的序列。其语法格式如下:

sname[start : end : step]

sname:表示序列的名称

start:表示切片的开始位置(包括该位置),如果没有指定,默认就是0

end:表示切片截止位置(不包括),如果没有指定,默认为序列的长度

step:表示切片的步长,如果省略,默认为1。

通俗解释:隔“步长”取值

例子:

nba = ["乔丹","拉塞尔","贾巴尔","张伯伦","约翰逊","科比","邓肯","詹姆斯","拉里·伯德","奥尼尔"]print(nba[1:5])print(nba[0:5:2])

输出结果是啥?

1.3序列相加

使用(+)运算符实现。说白了就是“拼接”

例如:

nba1 = ["乔丹","拉塞尔","贾巴尔","张伯伦","约翰逊","科比","邓肯","詹姆斯","拉里·伯德","奥尼尔"]

nba2= ["库里","汤普森","吉诺比利","杜兰特","姚明"]print(nba1+nba2)

运行结果:

['乔丹', '拉塞尔', '贾巴尔', '张伯伦', '约翰逊', '科比', '邓肯', '詹姆斯', '拉里·伯德', '奥尼尔', '库里', '汤普森', '吉诺比利', '杜兰特', '姚明']

注意:不能是列表和元组相加,或者是列表和字符串相加!

1.4乘法(Multiplying)

在python中,使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。

例如:

phone = ["HuaweiMate 30","vivo x21"]print(phone * 3)

运行结果:

['HuaweiMate 30', 'vivo x21', 'HuaweiMate 30', 'vivo x21', 'HuaweiMate 30', 'vivo x21']

1.5检查某个元素是否是序列的成员(元素)

在python中,可以使用in关键字检查某个元素是否是序列的成员。语法格式如下:

value in sequence

其中,value表示要检查的元素,sequence表示指定的序列。

例如:

nba = ["库里","汤普森","吉诺比利","杜兰特","姚明"]print("姚明"in nba)

运行结果:Ture

另外,也可以使用 not in 关键字实现检查某个元素是否不包含在指定的序列中。例如:

nba = ["库里","汤普森","吉诺比利","杜兰特","姚明"]print("姚明" not in nba)

运行结果:False

1.6计算序列的长度/最大值和最小值

使用len()函数计算序列的长度;使用max()函数返回序列中最大的元素;使用min()函数返回序列中最小的元素。

例如:

num = [7,14,21,28,35,42,49,56,63]print("序列num的长度为:", len(num))print("序列",num,"中最大值为",max(num))print("序列",num,"中最小值为",min(num))

运行结果:

序列num的长度为: 9序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中最大值为 63序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中最小值为 7

2.列表

它是python中内置的可变序列。

2.1列表的创建和删除

2.1.1使用赋值运算符直接创建列表,其语法格式如下:

listname = [element 1 , element 2 , element 3 , ..... ,element n]

listname表示列表名称;element 表示列表中的元素

2.1.2创建空列表

emptylist = []

2.1.3创建数值列表

特别说明:在python中,可以使用list()函数直接将range()函数循环出来的结果转换为列表;其基本语法:

list(data)

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

例如:创建一个10~20之间(不包括20)所有偶数的列表;

IDLE代码可以这样写

list(range(10, 20, 2))

pycharm只能这样写

list = list(range(10, 20, 2))print(list)

运行结果:

[10, 12, 14, 16, 18]

2.1.4 删除列表

可以使用del语句将其删除。语法如下:

del listname

其中listname为要删除列表的名称

其实呀,python中是可以自动销毁不用的列表。原则上是不需要我们自己删除的。

2.2 访问列表元素

可以直接用print函数。这也是为什么上面的代码在IDIE和PyCharm中代码不一样的原因。

2.3遍历列表

2.3.1使用for循环进行遍历;其语法格式如下:

for item in listname

其中,item用于保存获取到的元素值,要输出元素内容时,直接输出该变量就行了;listname为列表名称

例如:

print("2018年俄罗斯世界杯四强:")

team= ["法国","比利时","英格兰","克罗地亚"]for iteam inteam:print(iteam)

运行结果:

2018年俄罗斯世界杯四强:

法国

比利时

英格兰

克罗地亚

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

语法格式如下:

for index,item enmumerate(listname):

其中:

index:用于保存元素的索引

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

listname:为列表名称

例如:

print("2018年俄罗斯世界杯四强:")

team= ["法国","比利时","英格兰","克罗地亚"]for index,iteam inenumerate(team):print(index + 1,iteam)

运行结果:

2018年俄罗斯世界杯四强:1法国2比利时3英格兰4 克罗地亚

2.4添加/修改和删除列表元素

2.4.1添加元素

前面说过通过拼接的方式实现列表的添加数据,其实还有种方法快速实现,那就是append();其用法如下:

listname.append(obj)

其中listname为列表名称;obj为要添加到末尾到对象。

例如:

phone = ["摩托罗拉","诺基亚","三星","OPPO"]

phone.append("iphone")print(phone)

运行结果:

['摩托罗拉', '诺基亚', '三星', 'OPPO', 'iphone']

其实还有一种方式那就是insert(),这种方式没有append执行效率高,但他可以在任何位置添加元素。

另外如果将一个列表中但全部原色添加到另一个列表中。可以使用列表对象extend()方法实现,其语法如下:

listname.extend(seq)

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

2.4.2 修改元素

修改列表中的元素其实只要通过索引获取该元素,然后再为其重新赋值即可。

例如:

verse = ["德国队小组赛回家","西班牙传控打法还有未来吗","C罗一个人对抗西班牙"]

verse[2]="梅西,c罗相约回家"#修改列表的第三个元素

print(verse)

运行结果:

['德国队小组赛回家', '西班牙传控打法还有未来吗', '梅西,c罗相约回家']

2.4.3删除元素

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

a,根据索引删除

删除列表中的指定元素和删除列表类似,也可以使用del语句实现。所不同的是在指定列表名称时,换为列表元素。

例如:

verse = ["德国队小组赛回家","西班牙传控打法还有未来吗","C罗一个人对抗西班牙"]

del verse[-1] #删除列表的第三个元素

print(verse)

运行结果:

['德国队小组赛回家', '西班牙传控打法还有未来吗']

b,根据元素值删除

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

例如:

verse = ["德国队小组赛回家","西班牙传控打法还有未来吗","C罗一个人对抗西班牙"]

verse.remove("内马尔喊话梅罗:等等我!")

print(verse)

运行结果:

Traceback (most recent call last):

File"/Users/zhangjianyu/PycharmProjects/pythonProject/rain_test/day1.py", line 44, in verse.remove("内马尔喊话梅罗:等等我!")

ValueError: list.remove(x): x notin list

这是为什么呢?其原因是指定的元素不存在,所以在使用remove方法删除元素前,最好先判断该元素是否存在,改进后代码如下:

verse = ["德国队小组赛回家","西班牙传控打法还有未来吗","C罗一个人对抗西班牙"]

value= "德国队小组赛回家"#指定要删除的元素if verse.count(value)>0: #判断要删除的元素是否存在

verse.remove(value) #删除指定的元素

print(verse)

运行结果:

['西班牙传控打法还有未来吗', 'C罗一个人对抗西班牙']

2.5对列表进行统计计算

python的列表提供了内置的一些函数实现统计/计算方面的功能

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

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

listname.count(obj)

其中:listname:表示列表的名称;

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

返回值:元素在列表中出现的次数

例如:

player = ["莫德里奇","梅西","C罗","苏亚雷斯","内马尔","格列兹曼","莫德里奇"]

num= player.count("莫德里奇")print(num)

运行结果:

2

2.5.2获取指定元素首次出现的下标

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

listname.index(obj)

其中:listname:表示列表名称

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

返回值:首次出现的索引值

例如:

player = ["莫德里奇","梅西","C罗","苏亚雷斯","内马尔","格列兹曼","莫德里奇"]

position= player.index("莫德里奇")print(position)

运行结果:

0

2.5.3统计数值列表的元素和

在python中,提供了sum()函数用于统计数值列表中各元素和。语法如下:

sum(listname)

例如:

grade = [98,99,97,100,100,96,94,89,95,100]

total=sum(grade)print("python理论总成绩为:",total)

运行结果:

python理论总成绩为: 968

此外还有什么方法可以实现列表的求和计算?

2.6对列表进行排序

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

2.6.1 使用列表对象对sort()方法实现

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

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

参数说明:

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

key:表示指定一个从每个列表元素中提取一个用于比较对键(eg:设置key=str.lower,表示在排序时不区分字母大小写)

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

例如:

grade = [98,99,97,100,100,96,94,89,95,100]print("原列表:",grade)

grade.sort()print("升序:",grade)

grade.sort(reverse=True)print("降序:",grade)

运行结果:

原列表: [98, 99, 97, 100, 100, 96, 94, 89, 95, 100]

升序: [89, 94, 95, 96, 97, 98, 99, 100, 100, 100]

降序: [100, 100, 100, 99, 98, 97, 96, 95, 94, 89]

注意:使用sort()方法进行数值列表的排列比较简单,但是使用sort()方法对字符串列表进行排列时,采用对规则时先对大写字母排序,然后再对小写字母排序。如果想要对字符串列表进行排序(不区分大小写时),需要指定其key参数。

例如:

char = ["cat","Tom","Angela","pet"]

char.sort()print("区分字母大小写:",char)

char.sort(key=str.lower)print("不区分字母大小写:",char)

运行结果:

区分字母大小写: ['Angela', 'Tom', 'cat', 'pet']

不区分字母大小写: ['Angela', 'cat', 'pet', 'Tom']

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

语法格式如下:

sorted(listname,key=None,reverse=False)

参数说明:

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

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

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

例如:

grade = [98,99,97,100,100,96,94,89,95,100]

grade_as= sorted(grade) #进行升序排列

print("升序:",grade_as)

grade_des= sorted(grade,reverse=True)print("降序:",grade_des)

运行结果:

升序: [89, 94, 95, 96, 97, 98, 99, 100, 100, 100]

降序: [100, 100, 100, 99, 98, 97, 96, 95, 94, 89]

说明:列表对象sort()方法和内置storted()函数的作用基本相同,所不同的就是使用sort()方法时,会改变原列表原色排列顺序,而使用storted()函数时,会建立一个原列表的副本,该副本为排列后的列表。

2.7 列表推导式

a,生成指定范围的数值列表,语法格式如下

list = [Expression for var in range]

参数说明:

list:表示生成的列表名称

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

var:循环变量

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

例如:

importrandom

randomnumber= [random.randint(10,100)for i in range(10)]print("生成的随机数为:",randomnumber)

b,根据列表生成指定需求的列表,语法格式:

newlist = [Expression for var in list]

参数说明:

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

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

var:循环变量

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

例如:

price = [1200,5330,2988,6200,1998,8888]

sale= [int(i * 0.5) for i inprice]print("原价格:",price)print("打五折打价格:",sale)

运行结果:

原价格: [1200, 5330, 2988, 6200, 1998, 8888]

打五折打价格: [600, 2665, 1494, 3100, 999, 4444]

c,从列表中选择符合条件的元素组成新的列表。语法格式如下:

newlist = [Expression for var in if condition]

参数说明:

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

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

var:循环变量

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

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

例如:

price = [1200,5330,2988,6200,1998,8888]

sale= [x for x in price if x > 5000]print("原价格:",price)print("价格高于5000的:",sale)

运行结果:

原价格: [1200, 5330, 2988, 6200, 1998, 8888]

价格高于5000的: [5330, 6200, 8888]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值