美文网首页
Python的列表介绍

Python的列表介绍

作者: 酷飒de小姐姐 | 来源:发表于2021-03-20 18:51 被阅读0次

    一、列表

    列表是多个元素组成的有序集合。

    在Python中,使用[]来定义列表。

    另外一种构造列表的方式是list(对象),其从另外一个对象复制数据来构建一个新的列表。

    列表可以为空,即不包含任何元素的列表。用[]来表示空的列表。

    「列表特性」

    1.异构性

    Python的列表不要求其元素的类型相同。

    比如: a = [1, 2.3, "hello", [1, 2]] 

    第一个是int类型

    第二个是float类型

    第三个是字符串类型

    第四个是列表,可镶嵌里面

    2.元素个数可变

    对于C语言和Java语言的数组来说,元素个数在定义时就已经确定了,以后是不可以修改的。而Python的列表对元素个数是没有限制的,而且可以在运行时动态发生变化,如可以在尾部添加一个元素,或者在头部插入一个元素。经过这样的操作后,列表的元素个数也会发生变化。

    a.append(加入的内容)#用于尾部添加

    a.insert(加入元素位置,加入元素内容)#用于指定位置的添加

    添加完后,输出或打印列表a,既新的列表。

    3.直接访问元素

    这个和C语言、Java语言中的数组类似,可以指定某个位置来访问列表中的元素,如第一个元素、最后一个元素等。另外一种常见的数据结构是链表,但链表不可以直接访问任意元素,如要得到第三个元素的值,首先要访问第一个元素,通过第一个元素来找到第二个元素,再通过第二个元素来找到第三个元素。

    4.对象表示法

    我们从前面知道访问列表中任意元素的时间是相同的,这点就像C、C++和Java中的数组一样。但是其不要求所有元素类型相同,也不要求它们占用相同的内存空间,这是如何做到的呢?下面以列表[1,"hello"12.5,""]为例画出其在内存中对象模型,如图

    列表元素

    「列表数据的常用操作」

    1.得到元素个数——len()

    可以使用len()函数来得到某个列表包含的元素个数。

    如:len([])  #列表个数为0

    len([1,2,3]) #列表个数为3

    2.得到某种元素——列表[位置]

    我们可以用“列表[位置]”来表示某个元素,然后可以读取该元素的值,也可以修改该元素的值。

    list1 = [1, 2, 3]              # 定义一个列表

    list1[1]      # 查看第二个元素的值

    list1[1] =100 #修改第二个元素的值

    3.在尾部添加元素——append()

    结果就是元素个数加一,列表自己的id没有发生变化。

    4.得到某个值在列表中出现的次数——count()如果没有出现过,那么返回0。

    5.将另外一个列表的元素附加到尾部——extend(新列表)

    将新列表的元素放在原来列表尾部,原来的列表数据发生了变化。

    list_a=[1,2,3]

    list_b=[10,20,30]

    list_c=list_a.extend(list_b)

    6.查找第一个指定值出现的位置——index()

    第一个元素的位置为0。如果没有找到,抛出异常。

    list_a=[1,2,3,4]

    list_a.index(1)#第一个值为1的元素是0,输出位置结果:0

    list_a.index(5)#第一个值为5的元素不存在,抛出异常

    也可以指定开始位置。

    list_a =[1,2,4,1,21,20]

    list1=list_a.index(1,2)#开始位置为2,第一个值为1的元素是3,输出结果3

    list2=list_a.index(1,0)#开始位置为0,第一个值1的元素是0,输出结果0

    当然也可以同时指定开始和结束的位置。

    list_a =[1,2,4,1,21,20]

    list3=list_a.index(1,4,6)

    开始位置是4,结束位置是5,为1的值的元素不存在。报错:ValueError: 1 is not in list

    7.在指定位置插入元素——insert()

    需要指定位置和值,在该位置后面的元素都会向后移动一个位置。

    list_a=[1,4,6,8]

    list_a.insert(1,2)

    输出结果:list_a=[1,2,4,6,8]

    8.删除指定位置的元素——pop()

    将该指定位置上的元素从列表中删除,在该位置后面的元素都往前挪动一个位置。返回值是删除掉的元素的值。

    list_a=[1,2,4,6,8]

    list_a.pop(3)

    输出结果:list_a=[1,2,6,8]

    如果没有指定位置,那么就是删除最后一个元素。

    9.删除第一个等于指定值的元素——remove(值)

    从头部开始,删除第一个指定值的元素。

    list_a =[1,2,6,1,21,20]

    list_a.remove(1)删除第一个值为1的元素

    输出结果:list_a=[2,3,1,21,20]

    如果指定列表中没有元素的值等于指定的值,那么抛出异常。

    10.颠倒顺序——reverse()

    用于反转列表中的元素。

    list_a=[1,2,6,8]

    list_a.reverse()

    输出结果:list_a=[8,6,2,1]

    11.排序——sort()

    这对于由整数组成的列表来说非常有用。如果不是数值型的元素,那么其使用某种排队规则进行排序。我们也可以指定自己的排队规则来实现不同的排列方式。默认正序排列。

    list_a=[1,6,2,8,6,9]

    print(list_a.sort(reverse=False))

    反序为:

    print(list_a.sort(reverse=True))

    12.in操作符

    用来判断某个列表中是否包含指定值的元素。如果包含,返回True;否则返回False。

    list_a=[1,6,2,8,6,9]

    1 in list_a #输出结果True

    10 in list_a#输出结果False

    13.not in操作符

    判断某个值是否不在列表中。如果不在,返回True;否则返回False。该操作符和in刚好相反。

    list_a=[1,6,2,8,6,9]

    1 not in list_a #输出结果True

    10 not in list_a#输出结果False

    14.遍历所有元素——for in

    该操作符依次访问列表中的所有元素,而且是按照列表中元素的顺序依次来访问。第一次访问该列表的第一个元素,第二次访问第二个元素,循环执行直到访问完最后一个元素。如果列表为空,该操作符也是合法的,但是不会执行循环内的代码,一次也不会执行。

    list_a=[1,6,2,8,6,9]

    for num in list_a:

         print(num)#按照顺序输出各个元素值

    找出丢失的数

    有一个包含1到100,一共100整数的列表list,但是顺序已经被打乱,现在随机丢掉一个值,请计算出被扔掉的数的值。

    1.直接的解法依次查看1到100哪些数没有在输入的列表中。代码如下:

    import random

    def search_num(list_a):

    for numin range(1,101):

    if numnot in list_a:

    # print("丢失的数是:%d" %num)

                return num#找到丢失的数

    def test_search_num():

    list_a =list(range(1,101))#得到100个数

        random.shuffle(list_a)#打乱顺序

        print(type(list_a))

    drop_num = list_a.pop(50)#丢掉一个数

        ret = search_num(list_a)

    # print("miss num %d"%drop_num)

     print(format(drop_num))

    print(format(ret))

    # print("Answer %d"%ret)

    if __name__=='__main__':

    test_search_num()

    相关文章

      网友评论

          本文标题:Python的列表介绍

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