python从0到1:3.列表
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 删除列表
python生成1到100之间随机数可以使⽤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 in team:
print(iteam)
运⾏结果:
2018年俄罗斯世界杯四强:
法国
⽐利时
英格兰
克罗地亚
2.3.2使⽤for循环和enumerate()函数实现
语法格式如下:
for index,item enmumerate(listname):
其中:
index:⽤于保存元素的索引
item:⽤于保存获取到到元素值,要输出元素内容时,直接输出该变量即可
listname:为列表名称
例如:
print("2018年俄罗斯世界杯四强:")
team = ["法国","⽐利时","英格兰","克罗地亚"]
for index,iteam in enumerate(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()⽅法实现,其语法如下:d(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罗⼀个⼈对抗西班⽛"]
print(verse)
运⾏结果:
Traceback (most recent call last):
File "/Users/zhangjianyu/PycharmProjects/pythonProject/rain_test/day1.py", line 44, in <module>
ValueError: ve(x): x not in list
这是为什么呢?其原因是指定的元素不存在,所以在使⽤remove⽅法删除元素前,最好先判断该元素是否存在,改进后代码如下:verse = ["德国队⼩组赛回家","西班⽛传控打法还有未来吗","C罗⼀个⼈对抗西班⽛"]
value = "德国队⼩组赛回家"  #指定要删除的元素
unt(value)>0:  #判断要删除的元素是否存在
print(verse)
运⾏结果:
['西班⽛传控打法还有未来吗', 'C罗⼀个⼈对抗西班⽛']
2.5对列表进⾏统计计算
python的列表提供了内置的⼀些函数实现统计/计算⽅⾯的功能
2.5.1 获取指定元素出现的次数
使⽤列表对象的cuont()⽅法可以获取指定元素在列表中的出现次数,其语法如下:
其中:listname:表⽰列表的名称;
obj:表⽰要判断是否存在的对象,这⾥只能进⾏精确匹配,也就是说不能是元素的⼀部分。
返回值:元素在列表中出现的次数
例如:
player = ["莫德⾥奇","梅西","C罗","苏亚雷斯","内马尔","格列兹曼","莫德⾥奇"]
num = unt("莫德⾥奇")
print(num)
运⾏结果:
2
2.5.2获取指定元素⾸次出现的下标
使⽤列表对象的index()⽅法可以获取指定元素在列表中⾸次出现的位置(即索引)。语法格式如下:
listname.index(obj)
其中:listname:表⽰列表名称
obj:表⽰要查的对象,这⾥同样只能进⾏精确匹配。如果指定的对象不存在,则抛出异常
返回值:⾸次出现的索引值
例如:
player = ["莫德⾥奇","梅西","C罗","苏亚雷斯","内马尔","格列兹曼","莫德⾥奇"]
position = player.index("莫德⾥奇")
print(position)
运⾏结果:
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对列表进⾏排序

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。