「串列」是個依照特定順序排放的項目集合所組成,在python中串列是用中括號[ ]來表示,而串列中的個別元素是以逗號來分隔
以下為一個簡單的範例 :
fruits=["apple","banana","grape","pineapple"]
print(fruits)
上面程式碼的第一行是先建立一個裡面有四個元素的fruits串列,第二行是把整個串列印出來,印出結果如下 :
["apple","banana","grape","pineapple"]
如果說只想要存取一個元素來輸出的話,就得寫出串列的名稱並標記它的索引值
索引值是從0開始,不是1,索引值0的意思就是第一個元素,索引值1的意思就是第二個元素,索引值2的意思就是第三個元素...以此類推
範例如下 :
fruits=["apple","banana","grape","pineapple"]
print(fruits[0]) # 這行的意思是印出fruits串列中索引值0的位置,也就是第一個元素
輸出結果 :
apple
另外,索引值也可以是負數,負數的意思是從後面數回來 ! 所以索引值-1的意思是倒數第一個元素,索引值-2的意思是倒數第二個元素,索引值-3的意思是倒署第三個元素...以此類推
範例如下:
fruits=["apple","banana","grape","pineapple"]
print(fruits[-2]) # 這行的意思是印出fruits串列中索引值-2的位置,也就是倒數第二個元素
輸出結果 :
grape
範例如下 :
fruits=["apple","banana","grape","pineapple"] # 建立一個fruits串列
print(fruits) # 印出原本的fruits串列
fruits.append("mango") # 新增一個"mango"元素到fruits串列尾端
print(fruits) # 再印出新增元素後的fruits串列
輸出結果 :
["apple","banana","grape","pineapple"]
["apple","banana","grape","pineapple","mango"]
範例如下 :
letters=["a","b","c","d"] # 建立一個letters串列
letters.insert(0,"e") # 將"e"元素插入letters串列中的第一個位置
print(letters) # 印出letters串列
輸出結果 :
["e","a","b","c","d"]
要修改串列中的某個元素,必須先指定串列名稱和想要修改項目元素的索引值位置,再指定新的值進去即可
範例如下 :
colors=["blue","red","green"] # 建立一個colors串列
print(colors) # 印出原本的colors串列
colors[2]="yellow" # 將colors串列中的第三個元素值更改成"yellow"
print(colors) # 印出修改元素值過後的colors串列
輸出結果 :
["blue","red","green"]
["blue","red","yellow"]
範例如下 :
colors=["blue","red","green"] # 建立一個colors串列
print(colors) # 印出原本的colors串列
del colors[1] # 刪除colors串列中的第二個元素
print(colors) # 印出刪除元素後的colors串列
輸出結果 :
["blue","red","green"]
["blue","green"]
範例如下:
colors=["blue","red","green"] # 建立一個colors串列
colors.pop() # 從colors串列尾端彈出一個項目
colors.pop() # 再colors串列尾端彈出一個項目
print(colors) # 印出更改後的colors串列
輸出結果 :
["blue"] # 因為從尾端彈出的兩個元素,所以只剩"blue"
如果只是想要暫時刪除串列中的元素,我們可以將彈出來的值儲存到一個變數中
範例如下 :
colors=["blue","red","green"] # 建立一個colors串列
value=colors.pop() # 將colors串列尾端彈出的一個項目存到value變數中
print(value) # 印出value值
輸出結果 :
green
如果知道元素的索引值,就可以任意pop()出想要的值
範例如下 :
colors=["blue","red","green"] # 建立一個colors串列
value=colors.pop(1) # 將colors串列的第二個元素彈出然後存到value變數中
print(colors) # 印出修改後的串列
輸出結果 :
["blue","green"]
範例如下 :
name=["Mary","John","Leo"] # 建立一個name串列
print(name) # 印出原本的name串列
name.remove("Leo") # 刪除name串列中的"Leo"元素
print(name) # 印出更改後的name串列
輸出結果 :
["Mary","John","Leo"]
["Mary","John"]
如果只是想要暫時刪除串列中的元素,我們可以先定義一個變數來儲存要刪除的值,然後再用remove()刪除它
範例如下 :
name=["Mary","John","Leo"] # 建立一個name串列
value="Leo" #定義變數value是"Leo"
name.remove(value) # 刪除name串列中的"Leo"元素
print(name) # 印出更改後的name串列
輸出結果 :
["Mary","John"]
範例如下 :
letters=["b","c","d","a"] # 建立一個letters串列
letters.sort() # 將letters串列依字母順序進行排列
print(letters) # 印出排列過後的letters串列
輸出結果 :
["a","b","c","d"]
如果想要讓串列依字母相反順序排序的話,要在sort()方法中傳入reverse=True參數,範例如下 :
letters=["b","c","d","a"] # 建立一個letters串列
letters.sort(reverse=True) # 將letters串列進行反序排列
print(letters) # 印出排列過後的letters串列
輸出結果 :
["d","c","b","a"]
範例如下 :
letters=["b","c","d","a"] # 建立一個letters串列
print(sorted(letters)) # 印出暫時依字母順序排列的letters串列
print(letters) # 再印出letters串列會發現它還是原本的letters串列
輸出結果 :
["a","b","c","d"]
["b","c","d","a"]
如果想要讓串列依字母相反順序排序的話,要在sorted()方法中傳入reverse=True參數,範例如下 :
letters=["b","c","d","a"] # 建立一個letters串列
print(letters.sorted(reverse=True)) # 印出暫時依字母反序排列的letters串列
print(letters) # 再印出letters串列會發現它還是原本的letters串列
輸出結果 :
["d","c","b","a"]
["b","c","d","a"]
範例如下 :
letters=["b","c","d","a"] # 建立一個letters串列
letters.reverse() # 把letters串列的順序反轉
print(letters) # 印出反轉後的letters串列
輸出結果 :
["a","d","c","b"]
["b","c","d","a"]
附上排版較優美的
HackMD網址 : https://hackmd.io/onOH2yrYTO-3VRNS2kKEig
資料來源:<<python程式設計的樂趣>>-Eric Matthes著/H&C譯
感謝大大的教學,
但其中有一段 pop(1)輸出的結果好像有誤
h79919喔喔喔對耶!!感謝您認真看我的文~我已經修正了!!
你好,有個地方的範例,我無法重現結果,就是在sort()方法中傳入reverse=True參數的範例那裡.
以下是我的代碼:
letters=["b","c","d","a"]
print(letters.sorted(reverse=True))
print(letters)
以及我的Error 提示
AttributeError Traceback (most recent call last)
in ()
1 letters=["b","c","d","a"]
----> 2 print(letters.sorted(reverse=True))
3 print(letters)
AttributeError: 'list' object has no attribute 'sorted'