Day8 元组

2019-01-03  本文已影响0人  ChiAo1fei

一、元组

  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))
      
上一篇 下一篇

猜你喜欢

热点阅读