zoukankan      html  css  js  c++  java
  • 五丶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)
      

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

  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/mlcg/p/11281910.html
Copyright © 2011-2022 走看看