列表與元組
列表(list)
- 列表(list)是包含0個或多個元素的有序序列
- 創建列表的方式:將逗號分隔的不同元素使用方括弧括起來即可
listname=['name','id','card']
- 列表的索引也是從0開始的,可以通過下標索引訪問列表中的元素
- 列表的賦值與引用:listname由實際數據產生,作為列表對象,賦值給listname2僅作為一個listname的引用,存儲空間中實際數據只有一份,listname、listname2都是對該存儲空間數據的引用,所以,當listname改變存儲空間中的存儲數據時,listname2也會發生改變,原因:他們都是來自同一個存儲空間的數據。
listname=['card','id','name'] listname2=listname #listname2引用listname,並不是賦值 print(listname,listname2) listname[0]='admin' print(listname,listname2)
- 也可以使用列表函數:list(),將字元串、range()、元組等對象轉換為列表,語法格式為:list(obj),obj為需要轉換的對象,例:
list("hello world") list(range(1,10,2))
- 遍歷列表可以使用while與for循環
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv'] i=0 #while循環 while i<len(str): print(str[i]) i+=1 #for循化 for y in str:print(y)
-
列表的基本操作:append()、extend()、insert();分別作用為:末尾列表添加新的元素、在列表末尾一次性追加另一個序列中的多個值、將指定對象插入到列表的指定位置。
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv'] str2=['a','b','c'] str.append('d') #在尾部添加新的元素『d』 print(str) str.extend(str2) #在str尾部添加str2序列的元素 print(str) str.insert(1,'hh') #將'hh'插入到str列表下標索引1的位置 print(str)
- 查找元素與計數:list.index(obj):在列表中查找元素,用於返回元素首次出現的位置,如果不在則拋出異常;list.count(obj):統計指定字元出現的次數;
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv','gag','ebjv'] a=input('請輸入數據:') if a in str: b=str.index(a) c=str.count(a) print('元素:{0},在str列表首次出現的位置:{1},出現了{2}次'.format(a,b,c)) else:print("查無數據")
- 刪除元素:del命令、pop()方法、remove()方法
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv','gag','ebjv'] del str[0] #刪除str列表索引為0的元素 print(str) str.pop(1) #刪除str列表索引為2的元素,默認為刪除最後一個元素 print(str) while 'ebjv' in str:str.remove('ebjv') #remove用於刪除列表中第一個匹配項,用循環則可以刪除所有的指定值的匹配項 print(str)
- 分片賦值
str=['1','2','3','4','5','6'] str[2:]=['10','9'] #從索引2開始更改成『10』,『9』 print(str) str[1:1]=['8','7','6'] #索引1開始到1結束插入『8『』7』『6』 print(str) str[1:6]=[] #索引1-6插入插入空元素 print(str)
-
列表排序:reverse()、sort()、sorted();
#格式如下: list.reverse() #元素反向存放 list.sort([key=None],[reverse=False]) #key為key為可選參數,如果指定了該參數就會按照該方法進行排序,reverse也是可選參數,表示是否反向排序,默認為false(正序) sorted(iterable,[key=None],[reverse=False]) #iterable表示迭代對象(列表名),它與sort的區別於sort方法是在原列表上進行修改,而sorted方法是產生新列表,不會修改原列表
str=['1','6','3','4','5','6'] str.reverse() #將str列表中的元素反向存放 print(str) str.sort() #對元素值進行正向排序,默認為false正序 print(str) a=['aaa','aaaaa','aa','aaaasaa','a'] a.sort(key=len,reverse=True) #按照長度反向排序 print(a) b=sorted(a,key=len,reverse=False) #將a列表正序排序並賦值給b print(a) print(b)
元組(tuple)
- 元組與列表類似,不同之處在於不能修改元組的元素,元組使用圓括弧包含元素,而列表是使用方括弧包含元素。創建時可以省略圓括弧。
- 元組的基本操作:
- 訪問元組:與列表類似,可以使用下標索引來訪問元組中的值
str=('1','6','3','4','5','6') #創建元組 for i in range(0,len(str)): print(str[i],end=" ") #用循化輸出元組 i+=1 //print 1 6 3 4 5 6
- 合併元組:元組中的元素值是不允許修改的,但是可以對元組進行連接組合
str=('1','6','3') str2=('4','5','6') str3=str+str2 print(str3) //print: ('1', '6', '3', '4', '5', '6')
- 元組的遍歷:可以使用循化來遍曆數組
str=('1','6','3','4','5','6') for i in str:print(i,end=" ") //print 1 6 3 4 5 6
- 訪問元組:與列表類似,可以使用下標索引來訪問元組中的值
- 元組的內置函數:len()求長度、max()求最大值、min()求最小值、tuple()以一個序列為參數,並把它轉換為元組,如果本身是元組則原樣返回
str=('1','7','3','4','5','6') #創建元組 a=len(str) #求元組程度 b=max(str) #求元組中最大值 c=min(str) #求元組中最小值 str_1=['xfa','sfas,','sfa'] d=tuple(str_1) #將str_1轉換為元組 print(a,b,c,d)
典型案例
簡易計算器:編寫一個簡易計算器,根據要求輸入的數字和四則運算符號,計算結果並輸出。
operator=['+','-','*','/']
a=float(input("請輸入第一個數:"))
operator_1=input("請輸入運算符:")
b=float(input("請輸入第二個數:"))
if operator_1 not in operator:print("您輸入的運算符有誤,請輸入四則運算符")
else:
if operator_1=='+':re=a+b
elif operator_1=='-':re=a-b
elif operator_1=='*':re=a*b
elif operator_1=='/':re=a/b
print(a,operator_1,b,'=',re)