列表与元组
列表(List)是python显著区别于其他语言的一种数据结构
列表/可变序列
testn=[1,2,3,4] //列表元素可以是不同的数据类型,也可以是列表
fruits= ['apple',5,'peach',2,'watermelon',15.5]
fruits.append('pear') #末尾新增pear
fruits.insert(1,6.8) #第二个位置插入6.8
'apple' in fruits #判断apple是否在列表里 True or False
fruits[2] #读取指定下标元素
fruits[2]='元' #指定下标元素修改 可跨类型
index方法查找元素
L.index(value,[start[,stop]])
// L为 列表对象 value查找元素 查找位置下标
//找到返回下标数 找不到返回“ValueError...”出错信息
列表元素删除
listColor=['red',1,'green',2,'yellow',3]
listColor.pop(2) #删除2号元素
get_one=listColor.pop(0) #弹出并删除第一个元素
listColor.clear() #清除所有元素
L=['球1','球1','球1','球2','球3','球4','球5','球6']
L.remove('球1') #L为列表 value/球1为需要删除的对象 有多个时只能删除左边第一个
del(L[2]) #删除下表为2的列表
del L #删除整个列表
列表元素合并
team1=['张三','李四','王五']
team2=['Tom','Jack','John']
team1.extend(team2) #把列表2合并到列表1中 合并后team1 ['张三','李四','王五','Tom','Jack','John']
team1=team2+team1 #直接把两个列表合并 合并后team1的内存地址号改变
直接采用'+'合并 team1被重新定义 内存地址号改变
extend()方法不改变内存地址号
两种方法都改变了元素个数
列表元素排序
1.sort方法
fruit=['banana','pear','apple','peach']
fruit1=fruit.copy()
fruit2=fruit.copy() #复制新列表fruit1 2
fruit1.sort() #增序排序 ['apple', 'banana', 'peach', 'pear']
fruit2.sort(reverse=True) #减序排序 ['pear', 'peach', 'banana', 'apple']
'元素之间首字母从小到大排序(增) 减序相反'
2.key参数影响方法
listA=['Tom','tim','john','Jack'] #首字母带大小写的列表
listA1=listA.copy() #复制一个新列表listA1
listA1.sort() #sort方法默认排序 #['Jack', 'Tom', 'john', 'tim'] 执行排序结果 大写字母在前
listB=listA.copy()
listB.sort(key=str.lower) #大写转小写再进行排序 #['Jack', 'john', 'tim', 'Tom']
列表其他操作方法
1 L.copy()
2 L.count(value) #统计value个数
3 L.reverse() #L元素的永久性反向记录---反向操作后 列表对应的地址不变
4 列表解析
语法如下
[experssion for iter_val in iterable]
[expression for iter_val in iterable if cond_expr]
expression为基于元素的运算表达式 如i**2;iter_val为从列表中iterable迭代获取的元素i;if子句判断元素,cond_expr为判断元素的表达式
Nums=[i**2 for i in range(11) if i>0]
等价代码
Nums=[]
for i in range(1,11):
Nums.append(i**2)
#结果均为[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
代码简练,但不推荐,因缺点:
1.发生出错调试不方便
2.代码风格另类不常见

浙公网安备 33010602011771号