zoukankan      html  css  js  c++  java
  • 列表和元祖的使用 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)
        
  • 相关阅读:
    yml 配置文件注入
    STS 自动生成 getter 和 setter
    maven build 失败
    navicat 使用
    STS 设置 注解提示
    windows下安装Mysql
    安装 mysql
    用Navicat Premium 操作MySQL数据库
    渐变显示渐变消失的BackgroundView
    基于dispatch_after封装YXTimer
  • 原文地址:https://www.cnblogs.com/zhaoxinblog/p/13184527.html
Copyright © 2011-2022 走看看