五丶Python列表丶元组丶字典

通过索引访问元素

列表和元组都可以通过索引来访问元素:

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 = str1
    d,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 = mystr1
    q,r,*s = mytuple1
    print(n,o,p,q,r,s)
    

我 ['是', '一', '个', '热', '爱', '生', '活', '的', '艺', '术', '家'] ! 亦建 淮宝 ['思婷', '啊凡', '啊航', '雅思']

多个变量同时赋值

  • Python的赋值运算符支持同时将多个值赋予给多个变量,这是因为Python同时运用了序列的封包和解包

    t,u,v = "Python","Houdini","VFX"
    print(t,u,v)
    

这里就是先将等号右边的三个字符串打包成元组,再依次解包赋值到对应的变量上

posted @ 2019-08-01 13:25  Muomit  阅读(216)  评论(0编辑  收藏  举报