Pythonexcel常用函数列表里怎么用列表

Python 列表(List)操作方法详解
列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
一、创建一个列表
只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
二、访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
以上实例输出结果:
list2[1:5]:
[2, 3, 4, 5]
三、更新列表
你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
list = ['physics', 'chemistry', 1997, 2000];
print "Value available at index 2 : "
print list[2];
list[2] = 2001;
print "New value available at index 2 : "
print list[2];
以上实例输出结果:
Value available at index 2 :
New value available at index 2 :
四、删除列表元素
可以使用 del 语句来删除列表的的元素,如下实例:
list1 = ['physics', 'chemistry', 1997, 2000];
print list1;
del list1[2];
print "After deleting value at index 2 : "
print list1;
以上实例输出结果:
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]
五、Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式
len([1, 2, 3])
[1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
['Hi!'] * 4
['Hi!', 'Hi!', 'Hi!', 'Hi!' ]
3 in [1, 2, 3]
元素是否存在于列表中
for x in [1, 2, 3]: print x,
六、Python列表截取
Python的列表截取与字符串操作类型,如下所示:
L = ['spam', 'Spam', 'SPAM!']
Python 表达式
读取列表中第三个元素
读取列表中倒数第二个元素
['Spam', 'SPAM!']
从第二个元素开始截取列表
七、Python列表操作的函数和方法
列表操作包含以下函数:
1、cmp(list1, list2):比较两个列表的元素
2、len(list):列表元素个数
3、max(list):返回列表元素最大值
4、min(list):返回列表元素最小值
5、list(seq):将元组转换为列表
列表操作包含以下方法:
1、list.append(obj):在列表末尾添加新的对象
2、list.count(obj):统计某个元素在列表中出现的次数
3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置
5、list.insert(index, obj):将对象插入列表
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、list.remove(obj):移除列表中某个值的第一个匹配项
8、list.reverse():反向列表中元素
9、list.sort([func]):对原列表进行排序
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置:
Python list列表extend()使用方法
的基本操作方法,之前有介绍过,今天来介绍列表的另一种非常有用的extend()方法。list的extend()方法是把新参数添加到原有列表中,id不变,相当于原地修改。
extend()使用方法
与一般调用格式一样,变量名.方法名(参数)
extend方法可以在列表尾部追加包含多个值的另一个序列,而list的append()只能添加一个值。可以说list的extend方法是有扩展列表的作用:
&&& list1 = [1,2,3]
&&& list2 = [7,8,9]
&&& list1.extend(list2)
[1, 2, 3, 7, 8, 9]
list2中包含多个元素,被一次性添加到了list1中。
extend()和加号+连接操作符的区别
这个操作结果和用+号连接操作很像,但两者是有本质区别的。extend方法是把元素添加到了list1中,相当于扩展(修改)list1的数据,但id没有改变。如果用+号连接的话,它返回的是一个新生成的列表:
&&& list1 = [1,2,3]
&&& list2 = [7,8,9]
&&& list1 + list2
[1, 2, 3, 7, 8, 9]
list1 + list2虽然看上去显示的结果和extend方法一样,但其实它得到的是一个新列表,不能被引用的值。
如果要引用这个list1 + list2的结果需要将它赋一个变量名,比如:list1 = list1 + list2,此时再输出list1的结果就会是[1, 2, 3, 7, 8, 9]了。但它的工作效果远不如extend方法高。
玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/jinjie/list-extend.html
玩蛇网Python互助QQ群,欢迎加入-->:
修订日期:日 - 10时35分09秒
发布自玩蛇网
我要分享到:
PYTHON基础入门必备教程
Must Know PYTHON Tutorials
PYTHON进阶提高必备教程
Must Know PYTHON Modules
最新内容 NEWS
图文精华 RECOMMEND
热点文章 HOT
玩蛇网Python QQ群 QQ Groups
o 玩蛇网Python_01群
o 玩蛇网Python_02群
o 玩蛇网Python_03群
o 玩蛇网Python_04群
o 玩蛇网Python_05群
Navigation
玩蛇网Python之家,简称玩蛇网,是一个致力于推广python编程技术、程序源码资源的个人网站。站长 斯巴达 是一位 长期关注 软件、互联网、服务器与各种开发技术的Python爱好者,建立本站旨在与更多朋友分享派森编程的乐趣!
本站团队成员: 斯巴达
欢迎加入团队...Python操作列表的常用方法分享
转载 &更新时间:日 16:40:15 & 作者:
这篇文章主要介绍了Python操作列表的常用方法,需要的朋友可以参考下
下面列出列表常用的方法操作列表以及小例子:1.& Append&&&& 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点:&&&& A. append中添加的参数是作为一个整体 代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name.append(list(" tiger"))&&&& name&['s', 'c', 'o', 't', 't', [' ', 't', 'i', 'g', 'e', 'r']]
得到的值不是:['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']如果想要这种的追加方式,可以试试分片赋值(或者下面说到的extend方法): 代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name[len(name):] = list(" tiger")&&&&& #从末尾追加&&&& name&['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']
B.append一次性只能添加一个元素 代码如下:&&& name = list("scott")&&& name['s', 'c', 'o', 't', 't']&&& name.append("A","B")&&&&&&& #添加多个元素即将报错Traceback (most recent call last):& File "&stdin&", line 1, in ?TypeError: append() takes exactly one argument (2 given)&&& name.append("A")&&& name['s', 'c', 'o', 't', 't', 'A']
统计某个元素在列表中出现的次数 代码如下:&&& name = list("scott")&&& name['s', 'c', 'o', 't', 't']&&& name.count('s')1&&& name.count("t")2&&& name.count("A")0&&& name.append(list("Python"))&&& name['s', 'c', 'o', 't', 't', ['P', 'y', 't', 'h', 'o', 'n']]&&& name.count(['P', 'y', 't', 'h', 'o', 'n'])1
&& 在原列表追加另一个序列的中的多个值
代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name.extend(list(" tiger"))&&&& name&['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']
当然,我们可以用分片赋值来实现: 代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name[len(name):] = list(" tiger")&&&& name&['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']
这时小伙伴们会想到,我们可以直接用操作符"+"嘛,还方便些: 代码如下:&&&& name = list("scott")&&&& pwd& = list(" tiger")&&&& name + pwd&['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']&&&& name&['s', 'c', 'o', 't', 't']
从这三种方式操作的输出,可以看出:extend和分片赋值都是修改原列表,相对而言,extend可读性强些,而操作符"+"是生成一个新的列表,不影响原列表,如果我们需要生成新列表而不影响原列表,就可以用操作符"+"。4.Index从列表中找出某个值第一个(注意是第一个)匹配项的索引位置 代码如下:&&& name = list("scott")&&& name['s', 'c', 'o', 't', 't']&&& name.index('t')&&& ##第一个字母t的索引位置是33&& &&& name.index('a')Traceback (most recent call last):& File "&stdin&", line 1, in ?ValueError: list.index(x): x not in list&&& 'a' in nameFalse&&& 'a' not in nameTrue
从输出可以看出,index找的是第一个匹配项的索引位置,而如果查找的元素不在列表中,会报错(返回-1会不会好一点呢?),当然如果想避免报错,我们可以先用in操作,判断某个元素是否在某个列表中,如果在的话,然后进行index操作。5. Insert&&& 用于将对象插入到列表中,俩个参数,第一个是索引位置,第二个插入的元素对象。 代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name.insert(2,'tiger')&&&& ##在索引为2的地方插入字符串tiger& &&&& name&['s', 'c', 'tiger', 'o', 't', 't']
我们也可以用分片赋值: 代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name[2:2] = ['tiger']&&&& name&['s', 'c', 'tiger', 'o', 't', 't']&&&& name[2:2] = 'tiger'&&&& name&['s', 'c', 't', 'i', 'g', 'e', 'r', 'tiger', 'o', 't', 't']
这里需要注意的是,如果是插入一个元素,需要用[]括起来,不然,直接用字符串的话,是插入字符串的列表,在索引位置之后添加。当然,用insert的可读性比分片赋值强。6. Pop&&& 移除列表中的一个元素(最后一个元素),并返回该元素的值 代码如下:&&& name = list("scott")&&& name['s', 'c', 'o', 't', 't']&&& name.pop()'t'&&& name['s', 'c', 'o', 't']&&& name.append("t")&&& name['s', 'c', 'o', 't', 't']分片赋值模拟pop: 代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name[len(name)-1:] = []&&&& name&['s', 'c', 'o', 't']
这上面用pop和append模拟了栈的先进先出LIFO。7. Remove&& 移除列表中某个值的第一匹配项: 如果有俩个相等的元素,就只是移除匹配的一个元素,如果某元素不存在某列表中,便会报错,而且一次性只能&& 移除一个元素。 代码如下:&&& name = list("scott")&&& name['s', 'c', 'o', 't', 't']&&& name.remove("t")&&& #去掉第一个t&&& name['s', 'c', 'o', 't']&&& name.remove("A")&&& #不存在会报错Traceback (most recent call last):& File "&stdin&", line 1, in ?ValueError: list.remove(x): x not in list&&& "A" not in nameTrue&&& name.remove("s","c")& #一次只能移除一个元素Traceback (most recent call last):& File "&stdin&", line 1, in ?TypeError: remove() takes exactly one argument (2 given)8.Revense
&& 将列表中的元素反向
代码如下:&&&& name = list("scott")&&&& name&['s', 'c', 'o', 't', 't']&&&& name.reverse()&&&& name&['t', 't', 'o', 'c', 's']9. Sort & Sorted
&&& sort方法用于对列表进行排序,修改原列表,不会返回一个已排序的列表副本
代码如下:&&&& result = [8,5,5,3,9]&&&& result.sort()&&&& result&[3, 5, 5, 8, 9]
如果我们想要返回一个已排序的列表副本,而不影响原来的列表呢,一种方法,我们可以先赋值原来列表(可以用分片赋值复制),然后在复制的列表上做sort操作,另一种方法,就是使用sorted函数,它会返回已排序的列表副本: 代码如下:&&&& result = [8,5,5,3,9]&&&& result2 = sorted(result)&&&& result&[8, 5, 5, 3, 9]&&&& result2&[3, 5, 5, 8, 9]关于自定义的比较方法,像javascript做sort可以传入compare函数,java可以传入Comparable&T&实例,Python也类似,留待后续了~(@^_^@)~。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具向函数传递列表 在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字、数字、可能更复杂的对象(字典) 假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果 def Obj(fruits):
for fruit in fruits:
msg = 'I like '+fruit+'!'
print(msg)
L = ['apple','orange']
我们将Obj定义成接受一个水果种类列表,并将其存储在形参Obj中,这个函数遍历接受到的列表,然后打印'I like ..!'
在函数中修改列表
#首先定义一个列表,其中包含要打印的字母
letters = ['A','B','C','D']
already_letter = []
#模拟阅读每个字母,直到字母读取完毕为止
#将每个已经阅读过的字母转移到列表already_letter中
while letters:
current_letter = letters.pop()
print("Printing letter:"+current_letter)
already_letter.append(current_letter)
#显示已经读取的所有字母
print("\nThe follwing letter has been read:")
for letter in already_letter:
print(letter)
我们首先需要创建一个列表,还创建一个名为already_letter的空列表,每个已经阅读过的字母都存储到这个列表中,只要列表中还有字母,while循环就模拟阅读过程:从该列表中删除一个已经读取的字母,然后将其存储到变量current_letter中,并显示一条消息,再将该字母存储到新列表中,等到循环结束后,再打印出所有的字母。
上述程序改编版
def read_letter(letters,already_letter):
读取每个字母,直到读取完毕为止
将读取完毕后的字母存储到新的列表中
:param letters:
:param already_letter:
while letters:
current_letter = letters.pop()
#模拟读取字母的过程
print("Printing letter:" + current_letter)
already_letter.append(current_letter)
def show_already_letter(already_letter):
显示已经阅读的所有字母
:param already_letter:
print("\nThe follwing letters has been read:")
for letter in already_letter:
print(letter)
letters = ['A','B','C','D']
already_letter=[]
read_letter(letters,already_letter)
show_already_letter(already_letter)
我们定义了函数read_letter(),它包含2个形参:一个需要阅读字母的列表和一个存储已经阅读字母的列表。给定这两个列表,这个函数模拟阅读过程:将字母一个个阅读,然后打印,最后将其转存到存储已阅读的列表中,函数show_already_letter()主要是打印已经阅读字母列表,最后四条语句是定义一个列表与一个空列表,调用上面的两个函数。
上面的函数中,在读取完毕之后,letters列表就编程空列表了,那么假如我们想在读取完列表后还保留该列表,该怎么办呢?
使用切片法[ : ]创建列表的副本
def read_letter(letters,already_letter):
读取每个字母,直到读取完毕为止
将读取完毕后的字母存储到新的列表中
:param letters:
:param already_letter:
while letters:
current_letter = letters.pop()
#模拟读取字母的过程
print("Printing letter:" + current_letter)
already_letter.append(current_letter)
def show_already_letter(already_letter):
显示已经阅读的所有字母
:param already_letter:
print("\nThe follwing letters has been read:")
for letter in already_letter:
print(letter)
letters = ['A','B','C','D']
already_letter=[]
read_letter(letters[:],already_letter)
show_already_letter(already_letter)
print(letters)
通过这段代码的打印结果可以看出,列表已经被复制了哦!
阅读(...) 评论()python的列表在函数中的存储问题? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。2被浏览605分享邀请回答0添加评论分享收藏感谢收起04 条评论分享收藏感谢收起写回答

我要回帖

更多关于 vscode 查看函数列表 的文章

 

随机推荐