列表與元組

列表(list)

  1. 列表(list)是包含0個或多個元素的有序序列
  2. 創建列表的方式:將逗號分隔的不同元素使用方括號括起來即可
    listname=['name','id','card']
  3. 列表的索引也是從0開始的,可以通過下標索引訪問列表中的元素
  4. 列表的賦值與引用:listname由實際數據產生,作為列表對象,賦值給listname2僅作為一個listname的引用,存儲空間中實際數據只有一份,listname、listname2都是對該存儲空間數據的引用,所以,當listname改變存儲空間中的存儲數據時,listname2也會發生改變,原因:他們都是來自同一個存儲空間的數據。
    listname=['card','id','name']  
    listname2=listname          #listname2引用listname,並不是賦值
    print(listname,listname2)
    listname[0]='admin'
    print(listname,listname2)

  5. 也可以使用列表函數:list(),將字符串、range()、元組等對象轉換為列表,語法格式為:list(obj),obj為需要轉換的對象,例:
    list("hello world")
    list(range(1,10,2))

  6. 遍歷列表可以使用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)
    

  7. 列表的基本操作: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)

  8. 查找元素與計數: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("查無數據")

  9.  刪除元素: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)

  10. 分片賦值
    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)

  11. 列表排序: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)

  1. 元組與列表類似,不同之處在於不能修改元組的元素,元組使用圓括號包含元素,而列表是使用方括號包含元素。創建時可以省略圓括號。
  2. 元組的基本操作:
    1. 訪問元組:與列表類似,可以使用下標索引來訪問元組中的值
      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 
    2. 合併元組:元組中的元素值是不允許修改的,但是可以對元組進行連接組合
      str=('1','6','3')
      str2=('4','5','6')
      str3=str+str2
      print(str3)
      
      //print:
      ('1', '6', '3', '4', '5', '6')
    3. 元組的遍歷:可以使用循化來遍曆數組
      str=('1','6','3','4','5','6')
      for i in str:print(i,end=" ")
      
      //print
      1 6 3 4 5 6 
  3. 元組的內置函數: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)