iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
1
自我挑戰組

從python入門到物聯網系列 第 7

Day07 - List、tuple、dict、set

前言

前幾天提到Python資料型別有以下幾種

  • 數值型態(Numeric type) - int, float, bool, complex
  • 字串型態(String type) - str
  • 容器型態(Container type) - list, set, dict, tuple

前幾天講了簡單資料型別,今天來講複雜的資料型別吧!

List串列

List 串列,可儲存序列資料(可儲不同型別的資料),相較於其他程式語言的陣列更為強大。

python: List用中括號[ ]表示,不同的值用逗號分隔。

範例 :

animals = ["bear", "cat", "dog", "elephant"]
number = [1, 2, 3, 4, 5 ]

印出List內容操作方式

print (animals)      # 輸出完整的list
print (animals[0])   # 輸出list索引值0的位置 => 第一個元素
print(animals[-3])   # 輸出list索引值-3的位置 => 倒數第三個元素
print (animals[1:3]) # 輸出第二到第三個元素 
print (animals[1:])  # 輸出第二到最後一個元素
print (animals[:3])  # 輸出第一到第三個元素

結果

['bear', 'cat', 'dog', 'elephant']
bear
cat
['cat', 'dog']
['cat', 'dog', 'elephant']
['bear', 'cat', 'dog']

List修改內容

  • append() => 從List尾端新增一個元素進去
animals.append("fox") 
  • insert() => 在List的任何位置增加元素
animals.insert(1,"bird") 

結果

原本:['bear', 'cat', 'dog', 'elephant'] 
append:['bear', 'cat', 'dog', 'elephant', 'fox']
insert:['bear', 'bird', 'cat', 'dog', 'elephant', 'fox']
  • del => 將List該位置的值刪除
del animals[2] # 刪除第三個元素
  • pop() => 將List尾端的元素刪除
animals.pop() # 刪除最尾巴的"fox"
  • remove() => 將List中某個數值刪除
animals.remove("dog") # 刪除"dog"

範例

animals = ['bear', 'bird', 'cat', 'dog', 'elephant', 'fox']
print (animals)

del animals[2] #刪除第三個元素"cat"
print(animals)

animals.pop() #刪除最尾巴的"fox"
print(animals)

animals.remove("dog") #刪除"dog"
print(animals)

結果

原本:['bear', 'bird', 'cat', 'dog', 'elephant', 'fox']
del:['bear', 'bird', 'dog', 'elephant', 'fox']
pop:['bear', 'bird', 'dog', 'elephant']
remove:['bear', 'bird', 'elephant']

List函數介紹

  • reverse():反轉List的順序
animals.reverse()
  • sort():List排序
animals.sort()
  • index():某值在List第一次出現的索引位置

  • count():某值在List出現的次數

animals = ['bear', 'cat', 'dog', 'elephant', 'cat']
print(animals.index('cat'))
print(animals.count('cat'))

animals.reverse()
print(animals)

animals.sort()
print(animals)

結果

index "cat" :1
count "cat" : 2
reverse : ['cat', 'elephant', 'dog', 'cat', 'bear']
sort : ['bear', 'cat', 'cat', 'dog', 'elephant']

Dict 字典

key-map的形式
dict 字典,和串列很像但不會使用 0,1,…等的序列, index 來選擇項目,須宣告key鍵值來對應儲存的值。

fruits = {"apple":10, "banana":7, "orange":8}
print(fruits["banana"])

結果

7

keys、values、items

  • keys() => 取得所有key組合,資料型態為dict_keys
  • values() => 取得所有value組合,資料型態為dict_values
  • items() => 取得所有 (key,value) 組合,資料型態為dict_items
fruits = {"apple":10, "banana":7, "orange":8}

print(fruits.keys())   #keys()
print(fruits.values()) #values()
print(fruits.items())  #items()
dict_keys(['apple', 'banana', 'orange'])
dict_values([10, 7, 8])
dict_items([('apple', 10), ('banana', 7), ('orange', 8)])

List 通常用在東西是有順序的
Dict 通常用在可以被搜尋的

Tuple 元組

類似於 list 串列,但tuple 給定元素後不能改變
不同地方在於:list使用[],tuple使用()

animals = ('bear', 'cat', 'dog', 'elephant', 'cat')
print(animals)
print(animals[0])

用法和List 很像,但是當你試圖想改變 tuple 裡的元素,會跟你說tuple的item不能被給值

Set 集合

set 的內容元素都必須是獨一無二的

set1 = set()# 建立空的集合
set1 = set('apple')
print(set1)

結果

{'l', 'p', 'e', 'a'}

set 和list 可以互相轉換

num = [1, 2, 5, 6, 0, 1, 5, 2 ,6]
#將list轉成set
set1 = set(num)
print(set1)

set 會去掉重複元素而且排序

{0, 1, 2, 5, 6}

參考資料來源


上一篇
Day06 - 邏輯運算與判斷式
下一篇
Day08 - For迴圈
系列文
從python入門到物聯網30

尚未有邦友留言

立即登入留言