Python的列表介绍

时间:2021-6-12 作者:qvyue

一、列表

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

在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,””]为例画出其在内存中对象模型,如图

Python的列表介绍
列表元素

「列表数据的常用操作」

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()

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。