微信公众号-IT赶路人,专注分享与IT相关知识,关注我,一起升职加薪!
图片列表是非常常见的一种数据结构,那么Python中,都对列表提供了哪些操作,又如何对列表进行创建,增、删、改、遍历呢?本文就给大家汇总最基本,也是最常用的几种操作。
创建列表
字符串本质是一个字符列表,但原始字符串并不具备完整的列表性质。以字符串为例,我们来看看如何将字符串转换为列表。这就需要用到list()方法。
# list函数,将字符串转换为列表student_name = “Alice”print(list(student_name))结果:['A', 'l', 'i', 'c', 'e']
以上示例,定义一个字符串列表student_name,然后调用list方法,将student_name转换为字符数组,通过print打印到控制台。
修改、添加元素
对列表中某个元素的值进行修改,也可以向其中添加新的元素,这就需要用到元素访问,和append方法。看例子函数很简单了,那么接下来看修改元素和增加元素,另外,append和extend这两个大家一定要认真来看,修改元素就比较简单,直接通过索引访问到制定元素,重新赋值;增加元素主要是append函数与extend。
#列表的操作# Demo修改元素x = [1,2,3]x[1] = 5print(x)
# Demo( 增加 ):append() # append 增加 1个元素 lstr = ["a" ,"b" ,"c" ]lstr.append( "d" )print(lstr)# Demo( 扩展 ):extend()# extend 扩展多个元素# extend([]) 中是一个列表,有括号 lstr.extend([ "e" ,"f" ])print (lstr) lstr.append([“h",“i"])# Demo (插入):insert() # insert() 会在列表中的某个位置增加一元素。# 可以指定希望将元素增加到列表中的那个位置 lstr.insert( 2,“g")print (lstr)
第一段代码修改第二个元素,由原来的1,修改为2;第二个示例主要给搭建演示extend方式的使用,来看看程序执行的情况:
图片从代码中可以看到,x原始内容为[1, 2, 3],将第二个元素修改为5之后,数组打印出来就是[1, 5, 3],说明修改有效。原始names = [“a”, “b”, “c”],append操作之后,就变成了[“a”, “b”, “c”, “d”],最后与[“f”, “h”]进行extend之后就变成了一个新的长数组。大家可以自己尝试运行以上代码。
需要注意的是,从实例可以看出来,extend和append之间的差异,append是将参数当做一个元素添加到列表中,而extend的参数必须也是列表,才能得到扩展后的结果。
删除元素
在列表中,移除元素有三种常用的方法,这三种方法虽然都能移除一个元素,但效果和用途是不一样的。
-
remove(): 删除制定的元素
-
del:利用索引删除元素
-
pop(): 弹出最后一个元素,或者根据索引弹出,弹出隐含着删除当前元素
示例代码:
# Demo (删除元素) # remove() 删除元素 lstr = ["a" ,"b" ,"c" ]lstr.remove("b" )print (lstr) # del()删除lstr = ["a" ,"b" ,"c" ]del lstr[0]print(lstr)print(len(lstr))# pop() 弹出删除最后一个元素 lstr = ["a" ,"b" ,"c" ]lstr.pop()print(lstr) lstr.pop(1)print(lstr)
参考并运行上述代码,运行结果如下:
图片分片赋值
通过分片赋值,可 以一次为多个元素赋值;可以插入新的元素;可以删除元素。用法示例:
# Demo(分片赋值# 一次赋多个值,替换原有元素 lstr = ["a" ,"b" ,"c" ]print (lstr) lstr[2:] = list ("de" )print (lstr)# 不替换元素 ,插入新的lstr = ["a" ,"b" ,"c" ]lstr[1:1] = ["d"]print (lstr) # 分片复制也可以删除元素 lstr[ 1:2] = [] print (lstr)
运行以上代码,看看效果:
图片搜索元素
列表中如何有多个元素,如何查找这些元素?可以参考如下两个方法:
-
查找元素是否在列表中 in
-
查找元素在列表中的位置( 找元素在列表中的位置( 索引 ) index()
用法参考代码:
# Demo(搜索元素) in 与 index()lstr = ["alice" ,"bob" ,"tom" ]if "d" in lstr : print (True)else: print(False)# index()print(lstr.index("bob"))
代码运行效果:
图片可以看到,使用in关键字能够判断元素是否存在数组中;使用index能够获取元素的具体位置。虽然,这二者都能判断元素是否存在,但结果还是有差异的,前者只能判断是否存在,后者不仅可以判断存在,而且还能获取具体的位置。
count和reverse
-
count方法:统计一个元素才列表中出现的次数
-
reverse方法:将列表中的元素反向存储(倒置)
用法示例:
# Demo(count 、index)lstr = ["a" ,"b" ,"c" ,"a" ]print(lstr.count("a"))# 倒置lstr.reverse()print(lstr)
count方法,是进行统计的,reverse则济宁反转倒置,其结果就是对元素进行了逆序。实例:
图片numbers = [1, 2, 1, 3, 4],统计1的数量,结果就是2;将其翻转,就得到了[4, 3, 1, 2, 1]。
排序
排序通过sort方法完成,用于在原位置对列表进行排序(改变了原来的列表)。前面的append 、pop 也是如此。重点介绍sort(很多人错误的理解排序了,就给一个新列,其实是在原来的列表上操作)。
用法示例代码:
#Demo1numbers = [1,2,5,4,3]numbers.sort()print(numbers) print(numbers.sort())结果:[1, 2, 3, 4, 5]None #改方法是没有返回值的
代码展示:
图片如上,当sort操作之后,再打印原来的数据就能够得到排序之后的结果了。同时,这里也扩展了sort方法,其实,也可以在不改变原始数组的情况下获取排序后的数组,这就是sorted方法。sort与sorted,sort修改自生,针对自身列表进行排序,因此返回的是none。
总结
我们这一讲里边就讲了这些列表的函数,还有列表的一些增删改查,我们甚至可以把增加、修改,删除元素,简称增删改查这几种操作,希望大家通过案例的一些操作,能够对列表有些加深理解,能够真正理解我列表里边怎么进行操作,怎么去维护的列表。
浏览网页:https://www.itxiaonv.com/,了解更多IT信息
26322751-8bd00fde1a719aa1.jpg
网友评论