Python列表操作
2021-01-16 16:15
标签:获取当前值 找不到 sort 提取 fas 计算 enc none count Python列表操作 标签:获取当前值 找不到 sort 提取 fas 计算 enc none count 原文地址:https://www.cnblogs.com/linan-8888/p/12922741.html# encoding=utf-8
‘‘‘
所谓的可迭代对象指的是可以被for循环的对象
list 就是一个类 ;可迭代对象; 列表是有序的(可以通过索引查找元素)
补充说明:字符串一旦创建不能修改,可以通过索引查找值但不能修改值;列表可以通过索引查找值和修改值
1、列表是可变的,字符串是不可变的
2、列表中的元素可以是任何对象,列表相当于一个集合
3、列表(链表)的存储,每个元素是不连续,但是一个元素内存中保存该元素的值及下一个元素的地址,这样系统才能自动索引列表的所有元素
4、列表的取值;①通过索引进行取值list[index];②通过切片进行取值list[start:end];
5、列表的元素是可以被修改;①通过索引进行修改list[index]=obj;②通过切片进行修改list[1:3]=[True,Fasle];
6、删除列表的元素;①可以直接用 del list[index];②通过切片删除del list[start:end]
7、in 操作:string in list: 判断string是否在list中存在,是和list元素比较,不是和元素中的子元素比较
例如:‘石正文‘ in [1, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True] ——> False
8、字符串转换列表: 可以直接用list(string),内部使用for循环
9、列表转换字符串:①通过for循环实现(有数字类型元素);
②如果列表中的元素只有字符串的时候,可以通过join方法实现
#list类中提供的方法:
ps:删除的方法有5个:①pop(index) ②remove(values) ③del list[index] ④del list[start:end] ⑤clear
1、append(self,p_object):追加元素,在列表后面追加元素,不产生新的对象,故无需变量赋值
2、clear(self):清空列表
3、copy(self):浅拷贝,只拷贝索引,不产生新的对象
4、count(self,values):计算values元素在列表中出现的次数
5、extend(self,iterable):追加可迭代对象(内部相当于对迭代对象进行循环并使用append()方法进行追加元素),iterable表示可迭代对象;
例如:li.extend("不得了")——>增加了三个元素(""不,"得","了")【任何可迭代对象都能实现,包括元组、列表、字符串】
6、index(self, value, star=None,stop=None):查找元素的索引位置,从左到右找,如果有重复的元素,找到第一个就结束,如果元素不存在,报错
7、insert(self,index,p_object):插入元素,在index位置插入p_object新元素
8、pop(self,index=None):pop默认删除最后一个元素,也可以传入索引位置进行删除,并且被删除的值可以被获取
remove(self,value):删除列表中的指定值,左边优先,如果有重复的元素,只删除最左边的一个
9、reverse(self):将当前列表进行反转
10、sort(self,key,reverse):排序;不传递reverse参数默认是按升序排序,传递reverse=True时,表示按降序排序[key,cmp参数欠]
‘‘‘
li = [1, 12, 34, ["石正文", "高淇"], "sfe", True] # 通过list类 创建的对象
# 索引、下标提取数据
print(li[1])
‘‘‘2‘‘‘
# 切片取值,结果也是列表
print(li[0:4]) # 包头不包尾
print(li[0:-1])
‘‘‘
[1, 12, 34, [‘石正文‘, ‘高淇‘]]
[1, 12, 34, [‘石正文‘, ‘高淇‘], ‘sfe‘]
‘‘‘
#for循环
for lists in li:
print(lists)
‘‘‘1 12 34 [‘石正文‘, ‘高淇‘] sfe True ‘‘‘
#列表元素被修改,直接索引位置
li[1]=200
print(li)
‘‘‘[1, 200, 34, [‘石正文‘, ‘高淇‘], ‘sfe‘, True] ‘‘‘
#通过切片可以进行修改
li[1:3]=[True,False]
print(li)
‘‘‘[1, True, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True]‘‘‘
#删除
del li[1]
print(li)
‘‘‘[1, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True]‘‘‘
# in操作
print("sfe" in li)
‘‘‘ True ‘‘‘
#字符串转换列表,可以直接使用list类进行转换
s = "afeefwef"
print(list(s))
‘‘‘ [‘a‘, ‘f‘, ‘e‘, ‘e‘, ‘f‘, ‘w‘, ‘e‘, ‘f‘] ‘‘‘
#将列表转换字符串
li = [11,22,33,"123","alex"]
s = ""
for lists in li:
s += str(lists)
print(s)
‘‘‘ 112233123alex ‘‘‘
#如果列表中的元素都是字符串的时候可以通过join进行连接
li = ["123","alex"]
print("".join(li))
‘‘‘ 123alex ‘‘‘
#列表类函数
li = [11,22,33,44]
v = li.append(5)
print(v) #输出结果为None,不需要append进行对象接收
‘‘‘ None ‘‘‘
print(li)
‘‘‘[11, 22, 33, 44, 5]‘‘‘
#copy浅拷贝
li = [11,22,[True,False],22,44]
v = li.copy()
print(v)
‘‘‘[11, 22, [True, False], 22, 44] ‘‘‘
#count元素出现的次数
print(li.count(22))
‘‘‘ 2 ‘‘‘
#append()和extend()函数的使用和对比
#extend对象是可迭代对象
li.append(["12","ew"])
li.append("不得了")
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘] ‘‘‘
li.extend(["12","ew"])
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘]‘‘‘
li.extend("不得了")
‘‘‘
相当于:
for i in "不得了":
li.append(i)
‘‘‘
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘, ‘不‘, ‘得‘, ‘了‘]‘‘‘
li.extend(("你好","hello",True))
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘, ‘你好‘, ‘hello‘, True]‘‘‘
#index()根据值获取当前值的索引位置,左边优先;找不到报错
li = [11,22,33,22,44]
print(li.index(22))
#print(li.index(55)) #报错
‘‘‘ 1 ‘‘‘
#insert(index,p_object)插入元素,在index位置插入p_object新对象
li.insert(2,"def")
print(li)
‘‘‘ [11, 22, ‘def‘, 33, 22, 44] ‘‘‘
#pop(self,index):通过指定索引位置删除,无指定索引默认是最后一个元素,并且可以获取删除的元素值
li = [11,22,33,22,44]
v = li.pop()
print(li,v)
‘‘‘ [11, 22, 33, 22] 44 ‘‘‘
s = li.pop(2)
print(li,s)
‘‘‘ [11, 22, 22] 33 ‘‘‘
#reverse(self):反转 (最后一个元素变第一个元素)
li = [11,22,33,22,44]
li.reverse()
print(li)
‘‘‘[44, 22, 33, 22, 11]‘‘‘
#sort(self,key,reverse)默认升序,降序需要传递参数reverse=True
li = [11,44,33,22,22]
li.sort()
print(li)
‘‘‘[11, 22, 22, 33, 44]‘‘‘
li.sort(reverse=True)
print(li)
‘‘‘[44, 33, 22, 22, 11]‘‘‘