Hi 大家好,
今天要開始介紹基礎語法中的串列(list)
和元組(tuple)
篇,那我們開始吧!
在程式語言中,陣列
名詞是很常見的一種儲存資料結構。但為什麼在Python的世界中會把這樣的資料結構給他一個串列
的名詞來稱呼它呢?
主要是因為串列有以下幾個特點:
- 是有順序性的
- 可以變動
串列內容或串列大小,例如新增修改..等
- 利用[]
方括號來建立串列,利用,
號來分隔元素
- 可以放不同型別的資料 (字串、數字、空值、布林值或是再放一層串列)
>>> name = ["Eric", "Jacky", "Bluse"]
>>> name
['Eric', 'Jacky', 'Bluse']
>>> data = ["number", 123, None, True, [9, 8, 7]]
>>> data
['number', 123, None, True, [9, 8, 7]]
>>>
取得元素
>>> numbers = [88, 983, 34]
>>> numbers[0]
88
>>> numbers[-1]
34
>>>
修改元素
>>> numbers[1] = 7777
>>> numbers
[88, 7777, 34]
>>>
新增元素
>>> numbers.append(123)
>>> numbers
[88, 7777, 34, 123]
>>>
刪除元素
>>> numbers.remove(34)
>>> numbers
[88, 7777, 123]
>>>
抓取從串列索引3開始到串列最後的所有子串列
>>> numbers.append(1)
>>> numbers.append(2)
>>> numbers.append(3)
>>> numbers.append(4)
>>> numbers
[88, 7777, 123, 1, 2, 3, 4]
>>> numbers[3:]
[1, 2, 3, 4]
>>>
抓取從索引0開始到索引值-4之前的所有子串列
>>> numbers
[88, 7777, 123, 1, 2, 3, 4]
>>> numbers[:-4]
[88, 7777, 123]
>>>
- 主要是用來做資料轉換
- 可以使用更簡潔的方法建立串列
- 使用一個序列或 iterable(可疊代物件),將每一個元素經過某個運算的結果串接起來
成為新的 list,或是創建一個子序列
[ expression
for item
in iterable
if condition
]
[ 結果
for 個體
in 集合
if 條件
]
[情境一]
numbers = [1, 2, 3, 4, 5]
# [2, 4, 6, 8, 10]
# [ 結果 for 個體 in 集合 ]
result = [ n * 2 for n in numbers ]
print(result)
[情境二]
numbers = [1, 2, 3, 4, 5]
# 1, 3, 5, 7, 9
# [ 結果 for 個體 in 集合 ]
result = [2 * n - 1 for n in numbers]
print(result)
>>> names = ["Python", "JavaScript", "HTML"]
>>> one, two, three = names
>>> one
'Python'
>>> two
'JavaScript'
>>> three
'HTML'
>>>
串列有以下幾個特點:
- 是有順序性的
- 內容是不可變動
- 利用()
方括號來建立串列,利用,
號來分隔元素
- 可以放不同型別的資料 (字串、數字、空值、布林值或是再放一層元組)
>>> empty_tuple = ()
>>> empty_tuple
()
>>> numbers_tuple = (1, 2, 3, 4)
>>> numbers_tuple
(1, 2, 3, 4)
>>> mix_tuple = ("python", 123, True, (7, 8, 9))
>>> mix_tuple
('python', 123, True, (7, 8, 9))
>>>
如果tuple內的數字只有一個,那在數字後面必須要加上一個,
逗號,才會是一個tuple型態
否則會變成一個整數,這邊在使用上要特別留意
>>> number = (1)
>>> number
1
>>> type(number)
<class 'int'>
>>> number = (1,) <==== 數字後面加上,逗號 很重要 很重要 很重要
>>> number
(1,)
>>> type(number)
<class 'tuple'>
>>>
>>> numbers_tuple = (1, 2, 3, 4)
>>> numbers_tuple[1]
2
>>> numbers_tuple[-1]
4
>>>
*** 要習慣從錯誤訊息中找原因 ***
>>> numbers_tuple = (1, 2, 3, 4)
>>> numbers_tuple[1]
2
>>> numbers_tuple[1] = 999
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
>>> numbers_tuple = (1, 2, 3, 4)
>>> numbers_tuple[:3]
(1, 2, 3)
>>> numbers_tuple[:-1]
(1, 2, 3)
>>> numbers_tuple[:-3]
(1,)
>>>
>>> numbers_tuple = (1, 2, 3, 4, 2, 2)
>>> numbers_tuple.count(2)
3
>>>
>>> numbers_tuple = (1, 2, 3, 4, 2, 2)
>>> numbers_tuple.index(4)
3
>>> numbers_tuple.index(1)
0
>>>
那今天就介紹到這裡,我們明天見~