通过索引访问元素
列表和元组都可以通过索引来访问元素:
Python文件书写标准开头模板
# -*- coding: utf-8 -*-# @Time : 2019/7/25 12:53# @Author : yaogang_li# @File : 2.2列表和元组.py
- 一种是正向访问(从左到右),索引从0开始:第一个元素索引为0,第二个元素索引为1,.....以此类推;
一种是反相访问(从右到左),索引从-1开始:倒数第一个元素索引为-1,倒数第二个元素索引为-2,....以此类推;
my_tuple = tuple(range(3,10))print(my_tuple)
len()函数可以获取对象元素的长度(元素数量)
print(len(my_tuple))
print(str("打印my_tuple第二个元素为:") + str(my_tuple[2])) print(str("打印my_tuple倒数第二个元素为:") + str(my_tuple[-2]))当你使用索引访问元素时,你的索引必须在 -len ~ len-1之间,否则程序就会报错(IndexError: tuple index out of range)
print(str("打印my_tuple倒数第二个元素为:") + str(my_tuple[20]))
子序列
列表和元组也可以使用索引获取元素中间字符,这种方法被称为slice(分片和切片)
slice的完整格式 [start: end :step] 开始:结束:步幅my_list1 = str("降世魔童")print (my_list1[0:3:2])my_tuple1 = (1,3,5,8,4,2,"Python","Houdini","Maya")print(my_tuple1[0: -1 :2])
获取子序列(元素的中间字符/序列的中间元素)
元组和列表的加减
my_list2 = ["动画电影"] #列表my_tuple2 = (25,5,10,82,"神兵小将") #元组print (list(my_list1) + my_list2)print (tuple(my_tuple1) + my_tuple2)print (my_list2+ list(my_tuple2))
列表需要使用 [ ] 中括号括起来,元组则是 ( ) 小括号;数组则直接返回字符串不带符号(可强制返回引号 吗?)
print(my_list1)print(my_list2)print(my_tuple2)
序列相关函数与封包解包
len()、max()、min()函数
len()、max()、min()函数可分别获取元组或者列表的长度、最大值、最小值
mystr1 = "我是一个热爱生活的艺术家!"mylist1 = ["Python","Houdini","Maya","Nuke","帅刚"]mytuple1 = ("亦建","淮宝","思婷","啊凡","啊航","雅思")print(len(mystr1),max(mystr1),min(mystr1))print(len(mylist1),max(mylist1),min(mylist1))print(len(mytuple1),max(mytuple1),min(mytuple1))
- 字符串比较大小时,将会依次按字符串中每个字符对应的编码来比较大小
字符串比较大小时,先比较第一个字符的大小,再比较第二个字符....
序列封包
在Python里把多个值赋予给一个变量时,Python会自动将多个值封装成元组。这种功能被称为序列封包
data1 = 3,6,"Houdini","Nuke"print(len(data1))print(type(data1).__name__)
序列解包
序列(元组或列表等)可以直接赋予多个变量,此时序列的元素会被依次赋予给每个变量(要求序列的元素个数和变量个数相等),这种功能被称为序列解包
mylist1 = ["Python","Houdini","Maya","Nuke","帅刚"]mytuple1 = ("亦建","淮宝","思婷","啊凡","啊航","雅思")str1 = "Python","Houdini","VFX"a,b,c = str1d,e,f = mylist1[-3:]g,h,i = mytuple1[0:3]print(a,b,c,d,e,f,g,h,i)
.有时候需要解包的对象元素大于要分配的变量个数时,可以使用slice的方式获取其中一部分来解包赋值
. 封包适用于元组、列表、字符串等序列,包括(range)
j,k,l,m = range(520,524)print(j,k,l,m)
当只需要解包其中一个元素给特定变量其他变量随意分配时,可以在随意分配的变量前加一个号,这样就会先按照顺序自动解包赋予上值,剩下的就会以列表的形式赋予给由号的变量
mylist1 = ["Python","Houdini","Maya","Nuke","帅刚"]mytuple1 = ("亦建","淮宝","思婷","啊凡","啊航","雅思")n,*o,p = mystr1q,r,*s = mytuple1print(n,o,p,q,r,s)
我 ['是', '一', '个', '热', '爱', '生', '活', '的', '艺', '术', '家'] ! 亦建 淮宝 ['思婷', '啊凡', '啊航', '雅思']
多个变量同时赋值
Python的赋值运算符支持同时将多个值赋予给多个变量,这是因为Python同时运用了序列的封包和解包
t,u,v = "Python","Houdini","VFX"print(t,u,v)
这里就是先将等号右边的三个字符串打包成元组,再依次解包赋值到对应的变量上