python的(tuple)與{dict}

星期四 18 Apr 2019   even  
教學

前言

python最常見的容器,除了list外,還有tuple與dict。在特定情況這兩者比list還好用,那麼就趕快向各位介紹吧~

Tuple

tuple跟list幾乎一模一樣,但具有了不可變動的特性(immutable),也就是tuple內的物件,一旦被創建後,就無法被更改。

tuple以小括號( )表示,如下:

a = (1, 2, 3)
print(type(a))

<class 'tuple'>

另外,你可以不打小括號,直接用 , 來分隔物件,python會直接指派成tuple,如下:

a = 1, 2, 3
print(a)
print(type(a))

(1, 2, 3)
<class 'tuple'>

如果你試圖重新指派tuple內的物件,會報錯。

a = 1, 2, 3
a[0] = 10

Traceback (most recent call last):

File "<ipython-input-6-88fe5a9b0ebf>", line 1, in <module>
a[0] = 10

TypeError: 'tuple' object does not support item assignment

切割的使用方式和list一模一樣。

a = tuple('PUF STUDIO 好棒') # 你可以使用tuple將其他類型的iterable轉成tuple
print(a[16:2:-2])

('棒', ' ', 'I', 'U', 'S')

當你需要某些不可被變更的常數時,你會需要使用tuple,例如,在宣告顏色的時候使用:

RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)

Dict

Dict簡而言之就是有key的list。

在一般的list,我們使用index來獲取我們想要的物件,而index就只有表示第幾個物件的意思,有時候在使用上會相當不方便,如下:

my_store = ['蘋果', 20, '台幣']
print(f'賣{my_store[0]}一粒{my_store[1]}{my_store[2]}!')

賣蘋果一粒20台幣!

在上面的例子,我們必須額外記起來,第一個物件是商品名稱,第二個物件是價格,第三個物件是貨幣。非常不好!

在這種情況就是使用dict的絕佳好時機,取代用index來標註物件,而是用key。你可以使用有意義的字串當作是你的key。

dict的使用方式為大括號{ },然後是key : 物件,將上面的例子改用dict表示的方式如下:

my_store = {'商品':'蘋果', '價格':20, '貨幣':'台幣'}
print(f'賣{my_store["商品"]}一粒{my_store["價格"]}{my_store["貨幣"]}!')

賣蘋果一粒20台幣!

新增/修改dict

my_store = {'商品':'蘋果', '價格':20, '貨幣':'台幣'}

my_store['商品'] = '荔枝' # 如果key在原本的dict裡則會修改
my_store['數量'] = 10 # 如果key不在原本的dict裡則會直接新增

print(my_store)

{'商品': '荔枝', '價格': 20, '貨幣': '台幣', '數量': 10}

將dict放入for迴圈時,是針對key進行,因此如果要獲得每個key對應到的value的話可以:

# i 等同於my_store的key
for i in my_store:
    print(i)

print('*******')

# 因此,要獲得每個value的話,如下:
for i in my_store:
    print(my_store[i])

商品
價格
貨幣
數量
*******
荔枝
20
台幣
10

Bonus Tip: 另一種dict的創建方式

除了使用{}來產生一個dict外,還可以直接使用dict()來產生,使用的語法不一樣,如下:

my_store1 = {'商品':'蘋果', '價格':20, '貨幣':'台幣'}
my_store2 = dict(商品='蘋果',價格=20,貨幣='台幣')
print(my_store1)
print(my_store2)

{'商品': '蘋果', '價格': 20, '貨幣': '台幣'}
{'商品': '蘋果', '價格': 20, '貨幣': '台幣'}

用dict()來創建dict時,key不需要加上'',比較簡便一些,所以我大多是以這種方式來創建dict。

結語

以上是tuple與dict的簡短教學,這兩者也是經常會使用到的基本元素。當你在處理各種不一樣的問題時,你會發現並非所有的情況都是使用list,適時的改用tuple和dict可以讓一切更順利喔。

感謝您耐心閱讀到這裡 ,我們下回見,Bye~

python新手教學
Why python
Hello Python!
This is a python - 基本數值運算與邏輯判斷
[Python, 的, list, 教學 ]
"python的字串教學"
python的迴圈與流程控制
python的(tuple)與{dict}
def 一個python的自訂函數:
import套件到你的python
python的嘗試try與錯誤error處理
Python之禪

相關文章:

>