• python3基本数据类型02——列表、元组


    一、列表

      列表:两边是中括号,中间每个元素之间以“,”相隔 ,中间的元素可以是数字、字符串、元组、列表、字典         例:a  = ['a',1,[2,3],(1,2),{1:2}]

      直接赋值:只是传递对象的引用,原始列表发生改变时,被赋值的列表b也会改变

    >>> a = [1,[2,3,4]]
    >>> b = a
    >>> a,b
    ([1, [2, 3, 4]], [1, [2, 3, 4]])
    >>> a.append(5)
    >>> a,b
    ([1, [2, 3, 4], 5], [1, [2, 3, 4], 5])

        >>> a[1].append(6)
     >>> a,b
     ([1, [2, 3, 4, 6], 5], [1, [2, 3, 4, 6], 5])

      浅拷贝:只拷贝父对象,不拷贝子对象,因此当原始列表的父对象和子对象改变时,被赋值的列表b的子对象会改变父对象不会改变

    >>> c = a.copy()
    >>> a,c
    ([1, [2, 3, 4], 5], [1, [2, 3, 4], 5])
    >>> a.append(7)
    >>> a,c
    ([1, [2, 3, 4], 5, 7], [1, [2, 3, 4], 5])
    >>> a[1].append(6)
    >>> a,c
    ([1, [2, 3, 4, 6], 5,7], [1, [2, 3, 4, 6], 5])
    注:红色代表子对象

      深拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象

    >>>import copy 
    >>> c = copy.deepcopy(a)
    >>> a, c
    ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
    >>> a[1].append(5)
    >>> a, c
    ({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

      

      索引:根据索引查找元素

    >>> age_list = [18,15,19]
    >>> age_list[0]
    18

      切片:截取需要的元素

    >>> age_list[0:2]
    [18, 15]

      长度:列表元素的个数

    >>> len(age_list)
    3

      循环:循环输出列表里的元素

    age_list = [18,15,19]
    for item in age_list:
        print(item)
    

      列表内部提供的其它功能:   

        append(self, p_object):在列表末尾添加对象

          输入:p_object()需要添加的对象

          功能:在列表末尾添加对象

          输出:无

    >>> age_list = [12,13,14]
    >>> age_list.append(15)
    >>> age_list
    [12, 13, 14, 15]

        clear(self):清空

          输入:无

          功能:清空列表

          输出:无

    >>> l1 = age_list
    >>> l1
    [12, 13, 14, 15]
    >>> l1.clear()
    >>> l1
    []
    

        copy(self):浅拷贝,复制列表的父对象,不复制子对象

        count(self, value):查询value参数在列表中的个数

        extend(self, iterable):扩展列表元素

          输入:iterable是一个对象可以是字符串、列表、字典、元组

          功能:将iterable中的元素一个个添加到列表尾部

          输出:无

    >>> a
    [1, [2, 3, 4, 6], 5, 1]
    >>> d = '12345'
    >>> a.extend(d)
    >>> a
    [1, [2, 3, 4, 6], 5, 1, '1', '2', '3', '4', '5']
        index(self, value, start=None, stop=None):查询value参数的位置
          输入:value为要查找的值
          功能:根据值查找
          输出:若找到则输出第一次(左边)出现的位置,否则报错
    >>> a
    [1, 2, 3, 1]
    >>> a.index(1)
    0
    >>> a.index(0)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: 0 is not in list
    

         insert(self, index, p_object):插入

            输入:index索引号,p_object要插入的对象

            功能:在索引号前插入一个对象

            输出:无

    >>> a
    [1, 2, 3, 1]
    >>> a.insert(1,'a')
    >>> a
    [1, 'a', 2, 3, 1]
         pop(self, index=None):删除(根据索引)   等于    del  list[index]
          输入:index索引号
          功能:根据索引号删除列表里的元素,默认删除最后一个
          输出:输出删除的元素,若列表为空或索引超过列表长度就会报错
    >>> a
    [1, 'a', 2, 3, 1]
    >>> a.pop(1)
    'a'
    >>> a.pop(5)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: pop index out of range
    
        remove(self, value):删除(根据对象)
          输入:要删除的对象
          功能:根据值删除列表元素,若有多个value值,则删除左边第一个value
          输出:无(若值不存在则报错)
    >>> a
    [1, 2, 3, 1]
    >>> a.remove(1)
    >>> a
    [2, 3, 1]
        reverse(self):将列表倒序
          输入:无
          功能:将列表里元素的顺序反过来
          输出:无
    >>> a
    [2, 3, 1]
    >>> a.reverse()
    >>> a
    [1, 3, 2]
    

      

    二、元组

      元组:两边是小括号,中间元素以“,”隔开,元素可以是数字、字符串、元组、列表、字典         例:a  = ('a',1,[2,3],(1,2),{1:2}) 

          索引:不同索引号对应不同元素

        例 :a = (1,2,3)

            a[0] = 1, a[1] = 2, a[2] = 3

      切片:截取指定范围的元素

        例:a = (1,2,3)

          a[0:1] = (1,)  ,  a[0:2] = (1,2)       注:当元组只有一个元素时后面一定要加逗号才表示元组

      长度:表示元组的长度

        例:a = (1,2,3)

          len(a) =  3

      循环:使用循环遍历元组

        例: for item in a

      内置功能:

        count(self, value):同列表count函数,计算value参数在元组里的个数

        index(self, value, start=None, stop=None): 输出指定范围第一个(左边)value参数的位置

    三、元组和列表区别

        1、元组不可以添加或删除元素,列表可以

        2、元组只有一个元素时一定要以逗号结尾,列表不需要

  • 相关阅读:
    Mac Pro 日历增强工具 Itsycal
    Linux/CentOS 搭建 SVN 项目
    常用“开发软件包“下载地址
    修复 ThinkPHP3.2.3 抛出异常模块的一个BUG,关闭字段缓存功能
    升级到 PHP-7 遇到的坑 及 经验分享
    Mac Pro 实现 PHP-5.6 与 PHP-7.0 等多版本切换
    如何 实现PHP多版本的 共存 和 切换?
    记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程
    ASCII码表
    用C语言,如何判断主机是 大端还是小端(字节序)
  • 原文地址:https://www.cnblogs.com/tandonghao/p/9104671.html
Copyright © 2020-2023  润新知