APP下载

Python语言中列表方法的探索

2019-03-11徐建忠于广浩吕思宁苏奎

智能计算机与应用 2019年6期
关键词:列表分析

徐建忠 于广浩 吕思宁 苏奎

摘要:本文通过对python列表方法的介绍和举例阐明了python语言中列表的使用方法,可让读者在理解列表的过程中对其有一个深刻的认识。python列表提供了最常用的11种方法用于对列表的一般操作。列表方法的介绍列出了列表中常用的方法,列表方法的使用通过分析加实例的方式演示了列表的方法使用。

关键词:python;列表;分析

0引言

随着开源软件的蓬勃发展。近几年python得到了软件行业前所未有的重视。无论是人工智能、机器学习还是大数据等这些热点领域的背后都有python的影子。Python以其独有的特点吸引了无数的开发者投入其中,而在python众多特点中列表数据结构当仁不让的成为了其最重要的基石。以下将通过python3.6.2版本对python的列表方法进行探索。熟练掌握这些方法是进阶python能力的重要一环,而且列表方法的掌握对元组方法的学习也有事半功倍的效果。

1 列表方法的使用

设样本列表结构如下,并根据此样本列表进行使用方法的演示。

Sample_list=[‘c,‘a,‘f,‘b,‘d,‘g,‘e,‘q]

listl=[1,2,3,[‘a,‘b,‘c,‘d],4,5,6]

1.1 append

该方法的作用是向列表中添加一个指定的元素。以sample _list列表为例,当执行sample _list。append(‘n)之后,sample _list列表的尾部就会添加一个字符串n。该方法多用于对列表内容的扩充。

1.2 clear

该方法的作用是清空列表,使其内容消失成为空列表。以sample_list列表为例,当执行sanlple_list。clear()之后,sampIe_list列表的内容就都会被删除。该方法多用于对列表内容的全部删除。

1.3 copy

该方法的作用是浅复制列表。以sample_list为例,当执行other_list:sample_list。copy()时sample_list会将自身列表的内容复制出来一份传递给other_list这个列表。需要特别注意的是:列表的copy方法只执行浅复制,也就意味着复制操作只在列表的第一层起作用。如果嵌套列表执行copy方法的话被嵌套的列表虽然会被复制但之后嵌套列表在被修改的時候会影响到复制出来的列表。

通过以上的代码可以看到,sample_list列表在执行了copy方法后会复制出一个新的列表(暂命名为other_list)。复制之后,若在sample_list列表后添加了一个‘W,再次查看两个列表的内容就会发现,sample_list列表的修改并不会影响到other_list列表,也就意味着在这个列子中两个列表互相修改的时候并不会影响到对方。

下面通过一个例子来说明什么叫浅复制。

通过上面的代码可以看到,当嵌套列表listl被复制并赋值给list2后,list1和list2都具有了相同的内容。将list1中索引为1的元素修改为100,索引为3的元素(也就是被嵌套列表[‘a,‘b,‘c,‘d])中索引为1的元素修改为‘W后,再次查看list1和list2两个列表就会发现复制方法执行后list1列表第一层的修改并不会影响到list2列表的第一层,但list1列表第二层的修改就会影响到list2列表的第二层。也就是说,在复制的过程中copy()方法只是复制了列表元素的内存id值,而不是列表元素中存储的具体内容!

1.4 count

该方法的作用是统计指定元素在列表中出现的次数。以sample_list为例,当执行sample_list。count(‘d)之后会返回‘d在sample_list列表中出现的次数,该方法并不会修改sample_ust列表的内容。此方法多用于对列表元素的统计。

通过以上代码的执行可以看到,返回结果为1.这就意味着对sample_list统计其中元素‘d的个数为1.

1.5 extend

该方法的作用是通过传人指定元素或另一个可迭代对象来扩展现有列表中的元素。以sample_list为例,当执行sample_list。extend(‘t)之后在末尾添加元素‘t。

通过以上的代码可以看到列表的extend方法似乎和append方法的功能相同。两者之间的不同可通过下面的例子说明。

通过以上的代码可以清楚地看出,append方法是将[1,2,3]这个列表当做一个整体的对象添加到sample_list列表之中,而extend方法是将[1,2,3]这个列表中的元素逐一追加到sample_list列表之中。这就是两者之间的区别!

1.6 index

返回指定元素的索引值。以sample_list为例,当执行sample_list。index(‘f)之后会返回‘f元素在该列表中的索引值,如果列表中没有要查找的元素则会抛出Value Error异常。

通过以上的代码可以看出‘f在sample_list中的索引值为2.‘t元素不在列表中,无法返回索引值抛出Value Error异常提示。

1.7 insert

在指定的索引值前插入指定的元素。以sample_list为例,当执行sample_list。insert(3,‘W)之后,sample_list列表就会在索引值为3的元素前插入元素‘W。

1.8pop

通过索引值将列表元素移除并返回,若无索引值则操作列表最后一个元素。以sample_list为例,当执行sample_list。pop(2)之后,会将列表中索引值为2的元素(‘f)从列表中移除并返回。如果不指定索引值则会将列表最后一个元素(‘q)从列表中移除并返回。该方法改变了sample_list中的内容,属于删除元素的一种形式。

通过以上的代码可以看出,sample_list列表中的内容发生了变化,将原索引值为2和最后的一个元素(‘f和‘q)从列表中删除并返回。

1.9 remove

移除列表中指定的元素。以sample_list为例,当执行sample_list。remove(‘a)时,列表中的‘a元素将会被移除且被移除的元素不会被返回。如果被移除的元素不在列表中时。则会抛出Value Error异常提示。

remove和pop都是列表中元素的移除方法。二者之间的区别是:remove方法接收的参数是元素本身,而pop方法接收的参数是元素的索引值。pop方法在没有传人参数时默认移除列表中最后一个元素;remove方法在没有传人参数时会抛出TypeError:异常提示。

1.10 reverse

将列表反转。当执行sample_list。reverse()时,列表中的元素会从原来的顺序反转为逆序。

1.11 sort

将列表排序。当执行sample_list。sort()方法之后。列表会按一定的规则进行排序且还可在排序时进行反转。

通过以上的代码,可以看到列表已经正序和逆序排序。

2 结束语

在Python语言大行其道的今天,作为其重要基石之一的列表给用户展现了一种更为高级、灵活的数据结构。使用时可以最小化考虑语法的复杂而更专注于特定业务逻辑的实现。用户可以通过列表提供的方法完成绝大多数类数组这种数据结构的功能需求,让开发过程更为便捷、流畅。

猜你喜欢

列表分析
扩列吧
分析:是谁要过节
回头潮
列表法解分式方程问题探索
列表画树状图各有所长
2011年《小说月刊》转载列表
Units 13—14解题分析