1. 程式人生 > >傻瓜式學Python3——列表

傻瓜式學Python3——列表

前言: 好久不見,突然發覺好久沒寫部落格了,最近迷上了 Python 無法自拔,瞭解了一下,Python 簡單易學,尤其是接觸過java的人,入門 Python 更是門檻極低,本著學習記錄的原則,邊學習邊記錄,有利於梳理學習的成果,也有利於後期的覆盤,所以今天開始 Python 學習之旅的第一篇部落格,純粹只是記錄。

簡單的語法定義就不記錄了,從資料結構開始,程式最重要的就是操作資料,學習一門程式語言毫無疑問必須掌握它獨有的資料結構。現在就從 列表 開始。

列表是 Python 程式設計中使用頻率極高的資料結構,由一系列按特定順序排列的元素組成,用 [] 表示,逗號分隔元素,類似 Java 中的 陣列

。列表被建立來儲存資料,是動態的,隨時可以對列表進行 crud 操作。由於列表包含多個元素,所以通常命名為複數形式,如 names,letters 等。

基本格式

1fruits = ["apple","bananer","oranger"]
2print(fruits)

訪問列表元素

跟大多數程式語言一樣,python列表資料的訪問也是通過索引來獲取,第一個元素從0開始,最後一個元素索引為列表的總資料和減一。python也提供可另一種特殊語法,可以直接使用-1作為索引獲取最後一個元素,依次減一逆向獲取資料。獲取到列表資料之後 可以直接拿來進行任何操作。

1
print(fruits[0])//獲取第一個元素 `apple`
2print(fruits[-1])//獲取最後一個元素`oranger`

修改列表元素

直接根據索引拿到對應位置的元素,對其重新賦值即可。

1fruits[0] = "watermelon"//修改第一個元素
2print(fruits)//重新列印列表

此時列表變更為:['watermelon', 'bananer', 'oranger']

增加元素

  • 呼叫 append() 方法在列表末尾新增元素
1fruits.append("Plum")
2print(fruits)

此時列表為:['apple', 'bananer', 'oranger', 'Plum']

  • 呼叫 insert()方法在指定索引出插入資料
1fruits.insert(1,"pear")//在索引為1處插入資料
2print(fruits)

此時列表為:['apple', 'pear', 'bananer', 'oranger']

刪除列表中的資料

  • 知道索引的情況下,直接使用del刪除資料
1del fruits[0]//刪除第一個資料
2print(fruits)

此時列表為:['pear', 'bananer', 'oranger']

  • 呼叫pop()彈出列表列表資料,並返回彈出的資料。如果不傳引數,預設彈出列表最後一個元素,若傳入索引值,則彈出指定索引元素
1print(fruits.pop())//彈出最後一個元素,並列印
2print(fruits)
3print(fruits.pop(0))//彈出第一個元素,並列印
4print(fruits)

注意此時結果為:

1oranger
2['pear''bananer']
3pear
4['bananer']
  • 假如不知道元素的索引,而直到具體要刪除的元素值,也可以直接呼叫 remove()方法刪除,注意 刪除之後,還可以繼續使用該元素。
1fruits = ["apple","bananer","oranger","prea"]
2print(fruits)
3delete = "bananer"//刪除的元素
4fruits.remove(delete)//呼叫方法刪除指定元素值
5print(fruits)
6print(delete)//最後列印刪除掉的元素

結果為:

1['apple''bananer''oranger''prea']
2['apple''oranger''prea']
3bananer

列表排序

  • 呼叫 sort() 對列表元素進行排序,預設是按自然順序排序,如果要逆向排序,可傳入 引數reverse=True,排序之後 列表的順序就永久改變了。
1fruits = ["bananer","apple","oranger","prea"]
2print(fruits)
3fruits.sort()
4print(fruits)

結果為:

1['bananer', 'apple', 'oranger', 'prea']
2['apple', 'bananer', 'oranger', 'prea']
  • 假如我們想臨時該表一下列表的順序,可以使用 sorted()方法
1fruits = ["bananer","apple","oranger","prea"]
2print(fruits)
3print(sorted(fruits))
4print(fruits)

結果為:

1['bananer', 'apple', 'oranger', 'prea']
2['apple', 'bananer', 'oranger', 'prea']
3['bananer', 'apple', 'oranger', 'prea']

可見 列表順序並沒有改變。

使用 `reserse()` 方法,翻轉列表元素

1  fruits = ["bananer","apple","oranger","prea"]
2  print(fruits)
3  fruits.reverse()//翻轉列表元素
4  print(fruits)

結果為:

1['bananer', 'apple', 'oranger', 'prea']
2['prea', 'oranger', 'apple', 'bananer']

使用`len()`方法獲取列表長度

1fruits = ["bananer","apple","oranger","prea"]
2print(len(fruits))

結果明顯為4.

for 迴圈遍歷列表

這跟 java中類似,格式為 for xxx in 列表名:,遍歷獲取到列表資料之後,我們可以對它進行任何操作

1fruits = ["bananer","apple","oranger","prea"]
2for fruit in fruits:
3    print(fruit)

結果為遍歷打印出各個元素:

1bananer
2apple
3oranger
4prea

注意:python 中程式碼塊是沒有{}的,都是用4個空格縮排代表程式碼塊,for迴圈,if 迴圈,while迴圈,方法體都是如此,編寫程式碼時一定要注意縮排

快速組裝數字列表

ranger()傳入起始值和結束值可以按順序產生一系列數字,再使用list()可以快速組裝一定任意範圍的數字列表

1numbers = list(range(1,6))//組裝列表
2print(numbers)

結果:[1, 2, 3, 4, 5] 其實使用遍歷也可以實現,但是這種方法更加便捷。

列表生成式

使用 [表示式 for 變數值 in range(x,x) if xxx] 只需一條語句就可以快速生成數值列表,其中表達式是遍歷數值結果進行操作,還可以新增 if 條件。

1numbers = [x * x for x in range(1,6)]//求平方數值列表
2print(numbers)

結果為:[1, 4, 9, 16, 25] 這種表示式相當簡潔,原先的好幾行只需一行就能搞定。

使用切片裁剪獲取子列表

使用 列表名[x:y] 裁剪獲取對應索引區間的子列。假如省略起始值x,預設從0索引開始裁剪,假如省略結束值y,預設裁剪餘下的所有元素。

1fruits = ["bananer","apple","oranger","prea"]
2print(fruits[0:2])

結果為:['bananer', 'apple']

至此,基本的列表操作差不多都總結完了,順便記錄一下元組

  • 列表中的資料是可變的,我們經常用它來儲存可變的資料來源
  • 元組跟列表一樣也是用來儲存資料來源的,但是它儲存的資料來源是不可變的
  • 元組定義的格式也不一樣,為(xxx,yyy,zzz).
  • 對於元組的操作,跟列表一樣

小白式學 python3 第一篇總結,如有不妥之處,麻煩在評論區指出,謝謝~

參考:廖大教程https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

更多原創文章會在公眾號第一時間推送,歡迎掃碼關注 張少林同學

張少林同學.jpg張少林同學.jpg