Python中元組列表與字典學習筆記

來源:互聯網
上載者:User


引言

這篇文章介紹python中的三種組合資料類型,文章後半段會介紹如何在這些組合資料類型中使用"分區"取出資料。

文章目錄

0×1.元組

在python中,元組使用中括弧來建立,如果括弧中僅包含一個元素,需要在元素末尾添加一個逗號(不添加逗號資料會被建立成字串或數值資料類型),元組在建立後,不能添加刪除其中的元素,其值是固定不變的,請看下面的執行個體:

#建立三個元組,b元組僅包含一個字串元素,所以末尾需要添加一個逗號,否則b將被建立為字串對象,c元組是一個多維元組,包含了a和b元組
          >>> a=(1,2,3,4,5)
          >>> b=("www.qingsword.com",)
          >>> c=(a,b)

          #分別列印出三個元組中的元素
          >>> print(a)
          (1, 2, 3, 4, 5)
          >>> print(b)
          ('www.qingsword.com',)
          >>> print(c)
          ((1, 2, 3, 4, 5), ('www.qingsword.com',))

          #列印出a元組第一個元素,python的索引起始是從0開始的
          >>> print(a[0])
          1

          #列印出a元組中最後一個元素,len()函數將得到a元組元素的個數,因為索引是從0開始的,所以元素個數減一,就是最後一個元素的索引號
          >>> print(a[len(a)-1])
          5

          #另一種簡便的擷取元組中最後一個元素的方法,直接使用-1,以此類推,擷取倒數第二個元素就使用-2作為索引值
          >>> print(a[-1])
          5
          >>> print(a[-2])
          4

          #擷取多維元組中,第0個元素(a元組)中索引位置為2的值,也就是a子元組中的3了
          >>> print(c[0][2])
          3
0×2.列表

python中,可以使用中括弧建立列表,在上面的元組執行個體中的大部分操作都適用於列表,只需要將圓括弧替換成中括弧即可,不同點是,列表中僅包含一個元素時,不需要在末尾添加逗號,另外,列表可以添加或刪除元素,請看下面的執行個體:

#建立三個列表,其中c為多維列表,包含a和b
          >>> a=[1,2,3,4,5]
          >>> b=["www.qingsword.com"]
          >>> c=[a,b]

          #列印出三個列表中的元素
          >>> print(a)
          [1, 2, 3, 4, 5]
          >>> print(b)
          ['www.qingsword.com']
          >>> print(c)
          [[1, 2, 3, 4, 5], ['www.qingsword.com']]

          #使用list.append()方法,給a列表添加一個元素6
          >>> a.append(6)
          >>> print(a)
          [1, 2, 3, 4, 5, 6]

          #append()方法一次只能添加單個元素,而list.extend()方法一次可以添加多個元素
          >>> a.extend([7,8,9])
          >>> print(a)
          [1, 2, 3, 4, 5, 6, 7, 8, 9]

          #利用extend()方法的特性,可以將一個列表中的元素完全複製給另外一個列表,下面建立了一個空列表d,然後將c列表中的元素複製給d
          >>> d=[]
          >>> d.extend(c)
          >>> print(d)
          [[1, 2, 3, 4, 5, 6, 7, 8, 9], ['www.qingsword.com']]

          #使用list.remove()方法可以刪除列表中的元素,這個方法接收的不是索引值,而是元素值(本例直接刪除了a列表中的元素1和2)
          >>> a.remove(1)
          >>> a.remove(2)
          >>> print(a)
          [3, 4, 5, 6, 7, 8, 9]

          #list.pop()方法接收一個索引值,如果不指定索引值則預設為最後一位元素的索引值,這個方法將取出對應元素,然後從列表中刪除這個元素
          >>> print(a.pop())
          9
          >>> print(a)
          [3, 4, 5, 6, 7, 8]
          >>> print(a.pop(0))
          3
          >>> print(a)
          [4, 5, 6, 7, 8]

          #使用set()能夠刪除列表中的重複值
          >>> e=["a","a","b","c","b"]
          >>> print(e)
          ['a', 'a', 'b', 'c', 'b']

          >>> e=set(e)
          >>> print(e)
          {'a', 'b', 'c'}
0×3.字典

python中,使用大括弧能夠建立字典,字典中每個元素都是以"索引值對"的形式儲存的,請看下面的執行個體:

#有兩種方法可以建立字典,第一種直接建立一個空的字典,然後逐個添加索引值
          >>> a={}
          >>> a["早餐"]="牛奶雞蛋"
          >>> a["午餐"]="可樂牛排"
          >>> a["晚餐"]="水果沙拉"
          >>> print(a)
          {'早餐': '牛奶雞蛋', '晚餐': '水果沙拉', '午餐': '可樂牛排'}

          #第二種方法建立字典,一次性添加所有的索引值,用冒號分隔每一組元素,冒號前為"鍵",冒號後為"值""
          >>> a={'早餐': '牛奶雞蛋', '晚餐': '水果沙拉', '午餐': '可樂牛排'}

          #python允許不同的鍵擁有相同的值,所以下面的文法是正確的
          b={"one":"qing","two":"qing"}

          #有兩種方法可以讀取字典中的值,直接使用"字典[鍵]"來讀取值,或使用"字典.get(鍵)"來讀取值
          >>> print(a["早餐"])
          牛奶雞蛋
          >>> print(a.get("午餐"))
          可樂牛排

          #讀取字典keys和values列表
          >>> print(a.keys())
          dict_keys(['早餐', '晚餐', '午餐'])
          >>> print(a.values())
          dict_values(['牛奶雞蛋', '水果沙拉', '可樂牛排'])
0×4.資料分區執行個體

在python中能夠通過資料分區,實現讀取某段字串中單個字元的目的,這種思想同樣適用於元組和列表,如果列表中儲存的為字串,就可以通過分區技術取出某個元素的第幾個字元,這種方法在某些環境中會非常實用,請看下面的執行個體:

#首先來看python對字串資料的分區提取方法,本例取出a指向的字串資料中,索引位置為2的單個字元
          >>> a="abcdefg"
          >>> print(a[2])
          c

          #在列表資料中,可以將每個字串元素看做一個子列表,使用多維列表的思想,提取子列表中對應索引位置的值
          >>> b=["www.qingsword.com","abcdefg","12345678"]
          >>> print(b[0][4])
          q

          #提取b中索引位置為2的元素的最後一位字元
          >>> print(b[2][-1])
          8
使用字串分區技術,將一組列表中的每個元素的首字母提取出來作為字典的鍵,並對應這個元素的值,下面是一段比較完整的程式:

#!/usr/bin/env python3
          #建立一個名稱列表
          a=["Qingsword","John","Tom","George","Kali","Eva"]
          x=0
          #建立一個空字典
          b={}
          #當x值小於a列表元素個數時迴圈
          while x<len(a):
              b[a[x][0]]=a[x]
              x+=1  
          print(b) 

          #程式輸出
          {'E': 'Eva', 'G': 'George', 'Q': 'Qingsword', 'K': 'Kali', 'J': 'John', 'T': 'Tom'}
除了上面介紹的簡單切片技術外,python還提供了一種特殊的切片技術,分號切片,請看下面的執行個體:

#分號切片同樣適用於字串或元組列表,文法為"[起始索引:結束索引(不包含)]"

          #從字串a索引為2(3)的位置開始切片,直到索引6(7)的位置,截取這其中的資料輸出(包含起始索引值,不包含結束索引值)
          >>> a="123456789"
          >>> print(a[2:6])
          3456

          #從b中索引為3(d)的位置開始,直到索引為5(f)的位置
          >>> b=["a","b","c","d","e","f","g"]
          >>> print(b[3:5])
          ['d', 'e']

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.