美文网首页
Python(四)列表、元组、字典

Python(四)列表、元组、字典

作者: 晓看云 | 来源:发表于2019-05-20 17:09 被阅读0次

    目录:

    1.列表(List)

    2.列表扩展

    一、列表

    1.列表(List)

    (1)List是处理一组有序项目的数据结构;

    (2)List是Python中使用最频繁的数据类型;

    (3)列表可以完成大多数数据集合类的数据结构实现;

        支持字符、数字、字符串甚至还可以嵌套列表、元组、字典等

    (4)列表用[ ]表示,内部元素见用逗号隔开.

    2.创建列表

    (1)#创建空列表

            list1 = [  ]

            list1

    (2)创建非空列表

            list2 =[1, 'vd' ,12.3 ,[1,2,'sd']]

            list2

    3.访问列表

    (1)与字符串的索引一样,列表索引从0开始

    (2)列表可以进行截取、组合等

    (3)使用下表索引来访问列表中的值,也可以使用方括号的形式截取列表

            list1=['physics','chemistry',1997,2000];

            print"list1[0]:",list1[0]

    4.更新列表

    (1)可以对列表数据进行修改或更新;

    (2)可以使用append( )方法来添加新的列表项;

    (3)可以直接给列表赋值;

    5.删除列表

    (1)使用del语句来删除列表的元素或整个列表;

    (2)使用remove( )移除列表中的元素

    6.列表运算符

    (1)长度,len([1,2,3]),3

    (2)组合,[1,2,3]+[4,5,6],[1,2,3,4,5,6]

    (3)重复,['Hi!']*4,['Hi!','Hi!','Hi!','Hi!']

    (4)元素是否存在于列表中,3 in [1,2,3],True

    (5)迭代,for x in [1,2,3]:print x,1 2,3

    7.列表截取

    python的列表截取与字符串操作类似,均使用切片完成

    L = ['spam','Spam','SPAM!']

    L[2]='SPAM!'  #读取列表中第三个元素

    L[-2]='Spam'  #读取列表中倒数第二个元素

    L[1:]=['Spam','SPAM!']  #从第二个元素开始截取列表

    8.列表函数&方法(对所有序列字符串、列表、元组都有用)

    (1)cmp(list1,list2)   #比较俩个列表的元素

    (2)len(list)  #列表元素个数

    (3)max(list)  #返回列表元素最大值

    (4)min(list)  #返回列表元素最小值

    (5)list(seq)  #将元组/字符串转换为列表

    9.列表操作函数(仅对列表有用)

    (1)append(obj) 在列表末尾添加新的对象

    (2)insert(index,obj)将对象插入列表

    (3)pop(index)移除列表中的一个元素(默认是最后一个元素),并且返回该元素的值

    (4)remove(obj)移除列表中的某个值的第一个匹配想,一次删除一个

    (5)index(obj)从列表中找出某个值第一个匹配项的索引位置,如未找到就会抛出异常。

    (6)count(obj)统计某个元素在列表中出现的次数

    (7)extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

    (8)reverse( )反向列表中元素

    (9)sort([func]) 对原列表进行排序,根据ASCII码从大到小进行排序

    10、sort函数

    按照使用元组的第一个元素大小比较来实现list的排序

    11、自动生成列表

    List1 = range(10)

    List1

    [0,1,2,3,4,5,6,7,8,9]

    List2 = range(1,10)

    List2 

    [1,2,3,4,5,6,7,8,9]

    List3 = range(1,10,2)

    List3

    [1,3,5,7,9]

    12、列表复制

    引用复制的list,它们的内存地址是相同的,修改任何一个list,另一个list中的元素的值都会被改变

    非引用list,它们的内存地址不一样,所以修改任何一个list都不会影响另一个list

    list1 [0,1,2,3,4,5,6,7,8,9]

    List2 =list1

    复制([:]模式)指完全复制一个新的对象

    13、列表的增删改查遍历的综合操作

    二、列表扩展

    1.迭代器

        通过iter( )方法获得了list的迭代器对象,然后就可以通过next( )方法来访问list中的元素啦。当容器中没有可以访问的元素后,next( )方法将会抛出一个StopIteration异常终止迭代器。

    2.自定义的迭代器

    3.生成器

        如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环,一边计算的机制,成为生成器(Generator).

    4.迭代器和生成器的区别

        通过实现迭代器协议对应的__iter__( )和next( )方法,可以自定义迭代器类型。对于可迭代对象,for语句可以通过iter()获取迭代器,并且通过next()方法获得容器的下一个元素。

        生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__( )和next( )方法

        生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而使用yield一次返回一个结果。

    5.枚举

    Demo 

        For i, value in enumerate([‘A’,’B’,’C’]):

            Print I,value

    6.深浅拷贝

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。

        (1)copy.copy 浅拷贝 只拷贝副对象,不会拷贝对象的内部的子对象。

        (2)copy.deepcopy 深拷贝 拷贝对象及其子对象

    7.浅拷贝的内存

    8.深拷贝的内存

    9.通过list实现堆栈

    10.通过list实现队列

    三、元组

    1、创建元组

        Tu = ( )

        Tu

        创建只有一个元素的元组时,元素后面的逗号是不能省略的。

    2、访问元组

        元组可以使用下标索引来访问元组中的值。

    3、修改元组

        元组中的元素值是不允许修改的,元组中的可变对象可以修改,可以对元组进行连接组合

    4、删除元组

    5、元组运算符

    6、元组的索引、截取

    7、元组的内置函数

    8、元组的遍历和查找

    三、字典

    1、定义方法

    Dict = { }

    2、访问方法—访问字典的值

    Dict = {’Name’:’Zara’,’Age’:7,’Class’:’First’}

    Print “dict[’Name’]:”,

    3、修改字典中的值

    4、删除字典中的值

    5、字典的key

            字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

            两个重要的点需要记住:

            (1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个键就会被记住

            (2)键必须不可变,所以可以用数、字符串或元组充当,所以用列表就不行。

    6、内置函数&方法

        (1)cmp(dict1,dict2) 比较两个字典元素

        (2)len(dict) 计算字典元素个数,即键的总数

        (3)str(dict)输入字典可打印的字符串表示

        (4)type(variable)返回输入的变量类型,如果变量是字典就返回字典类型

    7、字典的排序

    8、字典内置的常用函数

    四、序列

    1.列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符。

    2.切片操作符是序列名后面跟一个方括号,方括号中有一对可选的数字,并且用冒号分隔。

    3.切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片结束位置,但不包括这个位置(如:list[2:5])。

        如果切片时,不指定第一个数,Python就会从序列的首页位置开始(如list[:5]).

        如切片时,不指定结束位置,Python就会停止在序列尾。(如:list[3:])

    相关文章

      网友评论

          本文标题:Python(四)列表、元组、字典

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