美文网首页
Day8 元组

Day8 元组

作者: ChiAo1fei | 来源:发表于2019-01-03 18:52 被阅读0次

    一、元组

    1. 什么是元祖(tuple)

      python提供的容器型数据类型,不可变并且有序(元祖就是不可变的列表)
      不可变 - 不支持增删改,只支持查询
      有序 - 每个元素对应一个确定的下标

    2. 字面量和元素

      (元素1,元素2,元素3,······)
      其中的元素可以是任何类型的数据,并且类型可以不一样,同样的元素可以有多个

      point = (100 ,30)
      print(type(point),point)
      
      #<class 'tuple'> (100, 30)
      
      • 空的元组:()

        tuple1 = ()
        print(type(tuple1))
        
        <class 'tuple'>
        
      • 只有一个元素的元组(必须加一个逗号)

        tuple2 = ('abc')
        print(tuple2,type(tuple2))
        tuple3 = ('abc',)
        print(tuple3,type(tuple3))
        
        abc <class 'str'>
        ('abc',) <class 'tuple'>
        
      • 直接将多个元素用逗号隔开,不加小括号,表示的也是元组

        tuple3 = 1,2,3
        print(tuple3,type(tuple3))
        
        (1, 2, 3) <class 'tuple'>
        
    3. 元组获取元素和列表是一样的

      tuple4 = '成都', '达州', '绵阳', '南充', '广元'
      print(tuple4[1],tuple4[-1])
      print(tuple4[:])
      # 遍历
      for city in tuple4:
          print(city)
      
      for index in range(len(tuple4)):
          print(tuple4[index])
      
      • 特殊的获取方式

        • 变量1,变量2,..... = 元祖 -- 用前面的变量一次获取元祖中元素的值(要求前面变量的个数和元祖的元素的个数保持一致)

          point = (100,200)
          x, y = point    # x,y = (100,200)    <==>  x,y = 100,200
          print(x, y)
          
        • 变量1, 变量2 = 元祖 -- 通过带的变量获取元祖中剩余的部分

          name, *scores = ('小明', 100, 89, 67, 99)
          print(name, scores)
          
          name, num, *scores = ('小明', 100, 89, 67, 99)
          print(name, num, scores)
          
          *info ,num = ('小明', 100, 89, 67, 99)
          print(info, num)
          
          *info ,num1, num2 = ('小明', 100, 89, 67, 99)
          print(info, num1, num2)
          
          info1, *nums, num1 = *info ,num = ('小明', 100, 89, 67, 99)
          print(nums)
          
          小明 [100, 89, 67, 99]
          小明 100 [89, 67, 99]
          ['小明', 100, 89, 67] 99
          ['小明', 100, 89] 67 99
          [100, 89, 67]
          

          注意:这个结构中带*的变量只能有一个,不带 * 的可以有多个

      1. 相关运算(和列表一样)

        +,*
        in / not in
        len(), max(), min(),sum(),tuple()
        
        tuple1 = (1,2,3)
        tuple2 = ('aa', 'bb')
        print(tuple1 + tuple2)
        print(tuple1 * 3)
        
        (1, 2, 3, 'aa', 'bb')
        (1, 2, 3, 1, 2, 3, 1, 2, 3)
        
      2. 排序

        sorted(序列) -- 对序列中的元素排序,产生一个新的列表(不管是什么序列,排序完成后产生的都是列表)

        注意:list.sorted(); -- 修改原列表中元素的顺序 ,不会产生新的值或序列
        sorted(list) -- 产生一个新的列表

        nums = (1,34,89,9)
        new_nums = sorted(nums)
        print(sorted(nums, reverse=True))
        
        new_strs = sorted('qwertyuiopasdfghj')
        print(new_strs)
        
      3. join的使用

        """
        字符串.join(序列)  --  将序列中的元素取出,用指定的字符串连接在一起。要求序列中的元素必须是字符串
        """
        new_str = ''.join(new_strs)         #转换为字符串
        print(new_str,type(new_str))
        

    相关文章

      网友评论

          本文标题:Day8 元组

          本文链接:https://www.haomeiwen.com/subject/zdyqrqtx.html