python序列:列表list和元组tuple

所谓序列,指的是一种包含多项数据的数据结构,序列包含的多个数据项(也叫成员)按顺序排列,可通过索引来访问成员

python的常见序列类型包括字符串、列表和元组。

在具体的编程过程中,如果只是固定的保存多个数据项,则不需要修改它们,此时就应该使用元组,反之使用列表

简单讲:列表与元组的关系就是可变与不可变的关系

创建列表与元组

创建列表与元组的语法也有点相似:

  • 创建列表使用方括号[ ]
  • 创建元组使用圆括号( )
  • 其元素(成员)用英文逗号隔开

列表语法:list = [ele1,ele2,ele3……]

元组语法:tuple = (ele1,ele2,ele3……)

访问其元素的方法与字符串相同:使用索引

示例:

#列表访问
list = ["continue",11,"python",20]
print(list)      #访问所有元素
print(list[0])   #访问第一个元素
print(list[1])   #访问第二个元素
print(list[-1])  #访问倒数第一个元素

#元组访问
tuple = ("city",15,20,"pig")
print(tuple)     #访问所有元素
print(tuple[0])  #访问第一个元素
print(tuple[1])  #访问第二个元素
print(tuple[-1]) #访问倒数第一个元素

列表与元组切片

列表与元组也可以使用索引获取中间一段,这种用法称为slice(分片或切片)

slice语法:[ start : end : step ]

start与end两个索引值可以是正数也可以是负数,其中负数从倒数位置开始,start和end满足“前包后不包”原则

step表示步长,因此step使用负数没有意义

示例:

      #列表切片
list = ["continue",11,"python",20]
print(list[0:2])     #从第一个位置到第三个位置(不包含第三个元素)
print(list[-3:-1])   #从倒数第三个位置到倒数第一个位置(不包含倒数第一个元素)
print(list[1:-2])    #从第一个位置到倒数第二个位置(不包含倒数第二个元素)
步长示例
print(list[1:4:2])   #从第一个位置到第四个位置,间隔为2
# "continue","python"

      #元组切片
tuple = ("city",15,20,"pig")
print(tuple[0:2])    #从第一个位置到第三个位置(不包含第三个元素)
print(tuple[-3:-1])  #从倒数第三个位置到倒数第一个位置(不包含倒数第一个元素)
print(tuple[1:-2])   #从第一个位置到倒数第二个位置(不包含倒数第二个元素)
#步长示例
print(tuple[1:4:2])  #从第一个位置到第四个位置,间隔为2
#  "city",20

列表与元组的加法运算

列表与元组支持加法运算,加法运算的和就是两个列表或元组的所有元素之和

注意:列表只能与列表相加,元组只能与元组相加,元组不能直接与列表相加

示例:

      #列表加法
list1 = ["continue",11,"python",20]
list2 = [1,2,3]
sum_list = list1 + list2
print(sum_list)

      #元组加法
tuple1 = ("city",15,20,"pig")
tuple2 = (1,2,3)
sum_tuple = tuple1 + tuple2
print(sum_tuple)

列表与元组的乘法运算

列表与元组支持与整数进行乘法运算,列表与元组的乘法运算就是把它们包含的元素重复N次(N就是被乘的倍数)

示例:

      #列表乘法
list = ["continue",11,"python",20]
a = list * 3
print(a)

      #元组乘法
tuple = ("city",15,20,"pig")
b = tuple * 3
print(b)

in运算符

in运算符用于判断列表或元组是否包含某个元素

示例:

      #列表 in 
list = ["continue",11,"python",20]
print("python" in list)   #True
print(21 in list)         #False



      #元组 in
tuple = ("city",15,20,"pig")
print("city" in tuple)   #True
print(24 in tuple)       #False

长度、最大值和最小值

python提供了内置的len()、max()和min()全局函数来获取列表与元组的长度、最大值和最小值

由于max()和min()函数要对列表、元组中的元素进行比较大小,所以传给max()和min()函数的列表、元组必须是相同类型的并且可以比较大小

示例:

      #列表 len() max() min()
list = [1,11,2,20]
print(len(list))   
print(max(list))  
print(min(list))


      #元组 len() max() min()
tuple = (1,15,20,2)
print(len(tuple))  
print(max(tuple))
print(min(tuple))    

序列封包和序列解包

python还提供了序列封包和序列解包的功能。简单来说,python支持以下两种赋值方式:

  • 程序把多个值赋给一个变量时,python会自动将多个值封装成一个元组。这种功能被称为序列封包
  • 程序允许将序列(列表或元组等)直接赋值给多个变量,此时序列的各元素会依次赋值给每个变量(要求序列的元素个数与变量个数相同)。这种功能被称为序列解包

示例:

#序列封包:自动将多个值封装成元组
val = 10,20,30
print(val)                  #(10,20,30)
print(type(val))            #<class 'tuple'>

#序列解包:元组或列表等赋值给多个变量
tuple = tuple(range(1,10,2))
a,b,c,d,e = tuple
print(a,b,c,d,e)
print(type(a))              #int
list = ["dog","pig"]
str1,str2 = list
print(str1,str2)
print(type(str1))           #str

根据这两个功能可以实现多个变量输入多个值

示例:

x,y,z = 10,20,30
#上述代码等于下面代码

#先执行程序封包
xyz = 10,20,30
#再执行程序解包
x,y,z = xyz

使用这种语法,也可以实现交换变量的值

示例:

x,y,z = 10,20,30

#将y,z,x依次赋值给x,y,z
x,y,z = y,z,x
print(x,y,z)

在序列解包时可以只接触部分变量,剩下的依然使用列表变量保存。为了使用这种解包方法,python允许在左边被赋值的变量之前添加了 * ,那么该变量就代表一个列表,可以保存多个元素

示例:

first,second,*rest = range(1,10)
print(first)      #保存第一个元素
print(second)     #保存第二个元素
print(rest)       #保存剩下的元素

*begin,last = range(1,10)
print(begin)      #保存最后一个元素
print(last)       #保存前面剩下的元素

print(type(begin))# list
print(type(last)) # int

还有first,*middle,last的格式

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值