列表和元祖的使用 day 04

  1. 列表 :存储数据的容器,可以放大量元素

  2. 常用操作方法

    1. append 追加,在原列表尾部追加值
    # s = [1, 2, 3, 'haode','ke']
    # s1 = s.append('holting')#不能输出追加这个动作
    # print(s1)
    
    2. #insert 插入 在原列表指定索引位置插入值
    # s = [1, 2, 3, 'haode','ke','中国']
    # s.insert(0,'xuexi')
    # print(s)
    
    3.#extend 扩展,将一个列表中的元素添加到另一个列表中
    # s = [1, 2, 3, 'haode','ke','中国']
    # h = ['holting',666]
    # s.extend(h)#h中的值逐一追加到 s 中
    # print(s)
    
    4.#remove 在原列表中根据值删除(从左到右找到第一个值删除)
    # s = [1, 2, 3, 'haode','ke','中国',3]
    # s.remove(3)
    # print(s)
    
    5.#pop 在原列表中根据索引踢出(相当于删除)某个元素
    # s = [1, 2, 3, 'haode','ke','中国']
    # s.pop()#默认提出最后一个元素
    # print(s)
    # s1 = s.pop(1)#输出踢出(删除)动作,为被踢出元素,
    # print(s1,type(s1))#与上面的不能输出追加动作,
    # print(s)
    
    6.#clear 清空原列表
    # s = [1, 2, 3, 'haode','ke','中国']
    # s.clear()
    # print(s)
    
    7.#reverse 反转原列表
    # s = [1, 2, 3, 'haode','ke','中国']
    # s.reverse()
    # print(s)
    
    1. 转换为列表,一般通过list强制转换,它的内部就是循环每个元素,再将元素追加到列表中。

      所以,想要转换为列表类型要求:必须可以被循环的元素才能转换为列表

    2. 获取长度等

      len 获取元素个数
      # message = '我赌你的枪里没有子弹'
      # s = list(message)
      # print(s)#['我', '赌', '你', '的', '枪', '里', '没', '有', '子', '弹']
      
      # user_list = ['龙傲天','叶良辰','踏浪铺']
      # print(len(user_list))
      
      #del 根据索引删除元素
      # data = [ "谢广坤",True,"宋小宝" ]
      # del data[1]
      # print(data)
      
      #切片
      # user_list = ['龙傲天','叶良辰','踏浪铺']
      # print(user_list[0:2])
      # print(user_list[:-1])
      # print(user_list[1:])
      
      #步长
      # user_list = ['龙傲天','叶良辰','踏浪铺',"宋小宝","刘能"]
      # print(user_list[0::2])
      # print(user_list[4:1:-1])#输出顺序可为这样
      # ['刘能', '宋小宝', '踏浪铺']
      
    3. for循环

      for i in range(100,1,-1):
          print(i)
      
      user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"]
      for item in user_list:
       if item == '刘华强':
           continue
       print(name)
      
    4. 嵌套

      列表属于容器,内部可以放各种数据,所以也支持列表 的嵌套

      对于嵌套的值,可以根据之前学习的索引知识来进行学习

      data = [ "谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝" ]
      print(data[0][2])#输出结果为坤
      print(data[1][-1])
      data.append(666)
      print(data)
      del data[-2]
      print(data)
      data[1].append('holting')
      print(data)
      
  3. 元祖(tuple)

    • 元祖也是一个容器,里面可以放各种数据(和列表相似),但是元祖里的元素不允许增加删除,修改,只能读。
    • 一般用于存储一些在程序中不应该被修改的值。

    元祖的定义:

    h = (11,22,33,)
    h1 = ('haohao','xuexi',)
    

    建议在元祖的最后多加一个逗号,用于标识它是一个元祖。

    面试题
    1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别?
    2. 比较值 v1 = ((1),(2),(3)) 和 v2 = ((1,),(2,),(3,),) 有什么区别?
    答
    v1v2 是int  v3是tuple
    v1v2都是tuple
    

    转换:

    其他类型可以转换为元组,一般可以被循环的元素才能转换,目前我们学到的可以被循环有:字符串和列表。

    name = "武沛齐"
    data = tuple(name)
    print(data) # 输出 ("武","沛","齐")
    name = ["武沛齐",18,"pythonav"]
    data = tuple(name)
    print(data) # 输出 ("武沛齐",18,"pythonav")
    

    其他:

    元组和列表非常相似,但由于元祖的子元素无法修改的特点,所有元祖都没有修改删除,添加的操作,只有读操作。

    获取长度
    len()
    索引
    切片
    步长
    ls[6:1:-1]
    for循环
    
  4. 元祖嵌套

    • 由于元祖和列表都可以充当容器,它们内部可以放很多的元素,并且也支持元素内的各种嵌套。

      tu = ('今天姐姐不在家','姐夫和小姨子在客厅聊天',('姐夫问小姨子税后多少钱','小姨子低声说道说和姐夫还提钱'))
      tu1 = tu[0]
      tu2 = tu[1]
      tu3 = tu[2][0]
      tu4 = tu[2][1]
      print(tu1) # 今天姐姐不在家
      print(tu2) # 姐夫和小姨子在客厅聊天
      print(tu3) # 姐夫问小姨子税后多少钱
      print(tu4) # 小姨子低声说道说和姐夫还提钱
      
  5. range 说明

    • range在python中可以帮助我们快速生成一个特定范围的数字(列表)

    • # 注意:在Python2中range会直接生成列表;在Python3中range生成是一个range对象(不会立即在内存中创建这些数,而是在循环时候边使用边创建,节省内存开销);

      v1 = range(1,6)   # 生成的数为:[1、2、3、4、5]
      v2 = range(1,6,2) # 生成的数为:[1、3、4]
      v3= range(6,1,-1) # 生成的数为:[6、5、4、3、2]
      print(range(1,10))#py3中并没有直接生成列表
      
    • range 和for循环 放在一起使用,进而获取一些数字。

      for i in range(10):
          print(i)
      for i in range(10,0,-1):
          print(i)
      

猜你喜欢

转载自www.cnblogs.com/zhaoxinblog/p/13184527.html