列表与元组

列表(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.代码风格另类不常见

posted @ 2020-11-12 19:52  17。  阅读(73)  评论(0)    收藏  举报