a =["zhangshan","lis","ww","dfad","asdfd"]
""" 在python的使用过程中,我们经常会用到列表,然而经常会遇到疑惑,下面我将详细介绍下列表使用方法。
一、列表 列表经常用到的功能使增、删、改和查功能。
1. 增 增的常用的方法有两种list.append、list.insert和list.extend() • append方法 :在列表的末尾追加。 例子:列表a =["zhangshan","lis","ww","dfad","asdfd"] ,追加一个100,那么操作方法是 a.append(100),即如下所示:
""" a.append(100)
print (a) """
• insert方法 :在指定位置追加。
例子:列表a =["zhangshan","lis","ww","dfad","asdfd"],第一个位置追加0,那么操作方法是a.insert(5,ygy),即如下所示:
""" a.insert(5,'ygy') print (a) """
注:上述例子中a.insert(5,'ygy'),其中第一个5是指插入的列表元素位置,因为列表元素下标是从0开始的,所以是插在第六个位置;第二个"ygy"是对应位置下元素的值。 • extend方法:该方法是在列表的末尾添加iterable(可迭代)类型的元素,可以用元祖或列表的形式表示,即如下所示: 例子:列表a =["zhangshan","lis","ww","dfad","asdfd"],依次采用增加列表元素的形式和元祖的形式追加元素。
2. 删 删就是用del list[x]方法、list.pop(x)和list.remove(x)方法,其中x为列表中某一个元素;而del list为删除整个列表。
""" print (a) del a[2] a.pop(2) print (a) """
例子: • 列表a =["zhangshan","lis","ww","dfad","asdfd"],删除列表中第一个元素,那么操作方法是del a[0],即如下所示:
• 列表a =["zhangshan","lis","ww","dfad","asdfd"],删除列表中最后一个元素,可使用倒叙法:del a[-1],即如下所示: • 删除整个列表a =["zhangshan","lis","ww","dfad","asdfd"],直接执行del a即可,如果再使用列表a需要重新定义,即如下所示:
""" b =["zhangshan","lis","ww","222","3333"] print (b) del b[1] del b[-1] print (b) """
• list.pop(x)方法来操作删除指定元素,如果移除不指定列表中的一个元素(默认最后一个元素),并且返回该元素的值。 如:列表a =["zhangshan","lis","ww","dfad","asdfd"],可以用list.pop(x),其中x为index索引值,即如下所示:
• list.remove(x)方法来操作删除指定元素,如果有重复项元素,默认移除第一个元素值。
""" print(a) a.remove("lis") print(a) """
3. 改 将预先定义好的列表中的值进行替换。 例子: • 列表a =["zhangshan","lis","ww","dfad","asdfd"],将第一个元素更改为0,即a[0]=0,即如下所示:
""" b[2]="李四" print(b) """
• 列表a =["zhangshan","lis","ww","dfad","asdfd"],将最后一个元素更改为0,可使用倒叙法:a[-1]=0,即如下所示:
""" a[-1]="00" print (a) """
4. 查 即根据列表下标索引查询。 例子: • 查询列表a =["zhangshan","lis","ww","dfad","asdfd"]中第一个元素的值,即如下所示: • 查询列表a =["zhangshan","lis","ww","dfad","asdfd"]中最后一个元素的值,即如下所示: • 列表查询之索引越界(因为列表下标是从0开始的,目前的例子中共计10个元素,第10个元素下标是9,当执行a[10]时是第11个元素就越界了。)
5. 拓展 5.1 遍历计算列表a = [1,1,2,3,4,1,1,10]中1的个数 • for循环实现
""" c = [1,1,2,3,4,1,1,10] count=0 for i in c: if i==1: count+=1 print (count) """
• 高阶函数 """ e=[x for x in c if x==1] print (len(e)) """
• 直接用内建函数 c.count(X) x为要查找的值 """ print (c.count(1)) """
5.2 将1-100的数用列表显示出来 •
用range函数 """ d =range(1,101) print(d) # 使用for循环 f=[] for i in range(1,101): f.append(i) print(f) #extend 将其它列表的内容追加到另外一个列表末尾 f.extend(c) print(f) """
5.3 将列表中元素用生成以*分割的字符串 此算法用到了join函数即 "*".join(list) 例如:将列表a = ['1','2','3'] 变成 1*2*3 """ dd = ['1','2','3'] print("*".join(dd)) #clear()清空整个列表 dd.clear() print(dd) """ 注:列表a中的元素必须为字符串类型。 另:字符串也可以用join方法用指定符号分割。
5.4 根据列表中的值算出下标索引值 注:如果列表中有相同的值时,返回的下标索引是最靠前的那一个。
5.5 列表的切片操作 列表的切片是指根据下标索引的值进行切片,主要有list[x:],lixt[x:-y],list[x:y:n],其中x为起始元素,y为倒叙数的元素值,n为步长,如下:
5.6 列表的升序排列 用到的是sort方法,即list.sort() """ print(f[5:]) print(f[25:]) print(f[5:-1]) print(f[5:-2:8]) aa=[1,11,2,3,4,8,9,10,15] aa.sort() print(aa) """
5.7 列表的反向排序 用到的是reverse方法,即list.reverse() """ aa.reverse() print(aa) """
6. 补充知识点 •list(seq):将元组转换为列表 •len(list):列表元素长度 •max(list):返回列表元素最大值 •min(list):返回列表元素最小值 •cmp(list1, list2):比较两个列表的元素 另:以上所有例子列表a中所有元素都可以用字符串表示,即: list = ["a","b","c","d","e"] """
#print(aa(seq))
print(len(aa))
print(max(aa))
print(min(aa))