python从0到1:3.列表和元组

Posted rain小白菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 删除列表

可以使用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()方法实现,其语法如下:

listname.extend(seq)

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

2.4.2 修改元素

 

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

以上是关于python从0到1:3.列表和元组的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记:列表和元组

Python之列表和元组

Python数据类型(列表和元组)

Python核心编程——序列:字符串列表和元组

python基础三(列表和元组)

详解Python列表和元组