Python列表及元组操作


#列表(一组有序数据的组合就是列表)

#创建列表 #空列表
var = list()#var = []
print(var,type(var)) #具有多个元素的列表
var = ['','','风水'] print(var,type(var)) #基本操作
var = ['','','地火'] #访问列表中的元素
print(var[-2]) #修改元素
var[1] = ''
print(var) #删除元素
del var[1] print(var) #添加元素(不能加)

#序列操作
listvar1 = ['胡一菲','曾小贤','陆展博'] listvar2 = ['林宛瑜','陈美嘉','吕子乔','关谷神奇'] #相加
result = listvar1 + listvar2 print(result) #相乘操作
result = listvar1 * 2
print(result) #分片 #result = listvar2[:3] #result = listvar2[1:] #result = listvar2[1:3] #result = listvar2[:] #print(result)

#成员检测
result = 'Lisa荣' in listvar2 print(result) result = 'Lisa荣' not in listvar2 print(result) #序列函数 #len() 检测列表中元素的个数
var = ['张三','李四','王五','赵六'] result = len(var) print(result) #max() 获取最大值
result = max([12,23,34,45,21,32,43,54]) print(result) #min() 获取最小值
result = min([12,23,34,45,21,32,43,54]) print(result) #遍历列表

#for...in
var = ['','','','绿','','',''] for i in var: print(i) #while遍历
i = 0 while i < len(var): print(var[i]) i += 1

#多层列表的遍历
var = [ ['小黑','black'], ['小白','white'], ['小彩','color'] ] #等长二级列表
for i,j in var: print(i,j) #等长或不等长列表都可以遍历
for i in var: #print(i)
    for j in i: print(j) #列表推导式
var = ['段誉','虚竹','乔峰','木婉清','钟灵儿'] #最基本的列表推导式
result = ['@'+i+'@' for i in var] print(result) #书写列表1-10,使用列表推导式获取当前列表中每个数字*3的列表
var = [1,2,3,4,5,6,7,8,9,10] result = [i * 3 for i in var] print(result) #带有判断条件的列表推导式
var = [1,2,3,4,5,6,7,8,9,10] result = [a for a in var if a % 2 == 0] print(result) #声明一个多人名称的列表,使用推导式获取所有三个字人名
var = ['段誉','虚竹','乔峰','木婉清','钟灵儿'] result = [n for n in var if len(n) == 3] print(result) #多循环列表推导式
sizes = [37,38,39,40,41] colors = ['yellow','cyan','pink','purple'] result = [str(s) +'-'+ c for s in sizes for c in colors] print(result) #男组4人,女组5人,互相见面一次
men = ['男1','男2','男3','男4'] women = ['女1','女2','女3','女4','女5'] result = [m +'-'+ w for m in men for w in women] print(result) #带有判断条件的多循环列表推导式
men = ['男1','男2','男3','男4'] women = ['女1','女2','女3','女4'] result = [m +'-'+ w for m in men for w in women if men.index(m) == women.index(w)] print(result) #append() 向列表的末尾添加元素 直接修改元列表
var = ['a','b','c','d'] print(var) var.append('e') print(var) #insert() 在列表的指定位置之前添加元素
var = ['a','b','c','d'] print(var) var.insert(2,'g') print(var) #pop() 删除列表中指定位置的元素
var = ['a','b','c','d'] print(var) result = var.pop(0) print(var,result) #remove() 删除列表中指定值的元素
var = ['a','b','c','d'] print(var) result = var.remove('c') print(var,result) #clear() 清空列表
var = ['a','b','c'] print(var,id(var)) var.clear() print(var,id(var)) #copy() 复制列表
var = ['a','b','c','d'] print(var,id(var)) newvar = var.copy() print(newvar,id(newvar)) #count() 计算列表中某个元素出现的次数
var = [2,3,4,3,4,5,6,7,8,5,4,6,7,8] result = var.count(5) print(result) #excend() 将一个列表合并到另外一个列表中
var1 = ['xs','dc','yyh','wzj'] var2 = ['dsn','lss','cyy','lrs'] var1.extend(var2) print(var1) #index() 获取某个元素在列表中的索引
var = ['xs','dc','yyh','wzj'] result = var.index('dc') print(result) #reverse() 列表反转操作
var = ['a','b','c','d'] print(var) var.reverse() print(var) #sort() 排序函数
var = [23,342,34,32,75,59] #默认排序 升序 #var.sort() #print(var)

#降序 #var.sort(reverse=True) #print(var)

#自定义排序规则 #奇偶数
def myfunc(num): result = num % 5
    return result var.sort(key=myfunc,reverse = True) print(var) a = [4,5,66,45,99] # 0 1 0 1 1
 # 1 0 1 0 0 #a.sort(key=ceshi,reverse=False)
a.sort(key = lambda x:x%2==0) #print(a)

def ceshi(x): return x%2 == 0 a.sort(key=ceshi) print(a) #sort 排序按照返回值来排 特点基于原来列表进行排序
''' > < >= <= != == true 1 false 0 True + 1 1+1 1 + 1.1 2.1 bool int float float() int() bool() '''

 

#元组(元组也是一组有序数据的组合,和列表唯一的不同是,元组不可修改) #创建单个元素的元组 #var = (13,)
var = 23, print(var,type(var)) #元组只能进行访问操作
var = ('yy','bb','dlrb','glnz') print(var[1]) print(var[-2]) #元组的序列操作 # +
var1 = (1,3,5,7,9) var2 = (2,4,6,8,10) result = var1 + var2 print(result) #列表或者元组具有很多层
girls = ( ( ('小赵','小钱'), ('小李','小周') ), ( ('小吴','小郑'), ('小王','小刘') ) ) #访问多层元组中的内容
print(girls[1]) print(girls[1][1]) print(girls[1][1][0]) #元组推导式->生成器->不要则不给
var = (1,2,3,4,5,6,7,8,9) result = (i * 2 for i in var) print(result)#结果为生成器
for a in result: print(a)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM