Python列表及元組操作,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 + listvar2print(result)#相乘操作result = listvar1 * 2print(result)#分區#result = listvar2[:3]#result = listvar2[1:]#result = listvar2[1:3]#result = listvar2[:]#print(result)#成員檢測result = 'Lisa榮' in listvar2print(result)result = 'Lisa榮' not in listvar2print(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...invar = ['紅','橙','黃','綠','青','藍','紫']for i in var: print(i)#while遍曆i = 0while 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 resultvar.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 == 0a.sort(key=ceshi)print(a)#sort 排序按照傳回值來排 特點基於原來列表進行排序'''> < >= <= != ==true 1 false 0True + 1 1+11 + 1.1 2.1bool int floatfloat()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 + var2print(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)