python3學習筆記4--列表簡介

  • 列表是什麼

列表 是一系列按特定順序排列的元素組成。你可以創建包含字母表中所有的字母、數字0-9或所有家庭成員姓名的列表;也可以將任何東西加入列表中,其中的元素可以沒有任何關係。鑑於列表通常包含多個元素,給列表指定一個表示複數的名稱(如letters、digits或 names)是個不錯的選擇。

在Python中用([])表示列表,並用逗號來分隔其中的元素。例如:

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)
  • 訪問列表元素

列表是有序集合,因此要訪問到列表的任何元素,只需將該元素的位置或者索引告訴Python。要訪問列表元素,可指出列表的名稱,再指出元素的索引,並放在方括號中。

bicycles = ['trek','cannondale','redline','specialized']

print(bicycles[0]) #  返回第一個元素

print(bicycles[0][0]) # 返回第一個元素第一個字母
  • 索引從 0 開始

在Python中,第一個元素的索引爲0,而不是1。這與列表底層實現有關。根據這種簡單的計數方式,要訪問列表的任何元素,都可將其位置減一,並將結果作爲索引。

Python爲方位最後一個元素提供了一種特殊的語法。通過將索引指定爲-1,可讓Python返回最後一個列表元素。

bicycles = ['trek','cannondale','redline','specialized']

print(bicycles[-1])  #  返回最後一個元素
  • 使用列表中的各值

可像使用其他變量一樣使用列表中的各值。

下面來嘗試從列表中提取第一款自行車,並使用這個值來創建一條消息:

bicycles = ['trek','cannondale','redline','specialized']

message = "My first bicycle was a "+bicycles[0].title() + "。"

print(message)
  • 列表練習
namelist = ['Tom','Kilimanjaro','ZhangSan','LiSi']

message = [
           '送你一個愜意的寧靜週末,願你的生活陽光燦爛,愛情柔風細雨,快樂永久長駐,事業欣欣向榮,投資歡欣與鼓舞,家人健康長壽,週末愉快!',
           '注意,注意!今天天氣降溫,需多穿衣服,多喝水。我的提示沒有華麗的詞語,只是提醒大家多添衣多喝水。祝大家身體健康。']

for i in range (len(namelist)):

    for j in range (len(message)):

        print (i,j) # 打印所選擇的元素

        print("Hello " + namelist[i]+ ' ' + message[j] +"。" ) # 打印對應語句
  • 修改、添加、刪除元素

1、修改元素:

修改列表元素的語法與訪問列表元素的語法相似。要修改列表元素,可指定列表名和要修改的元素索引,再指定該元素的新值。

motorcycles = ['honda','yamaha','suzuki']

print(motorcycles)

# 根據元素索引進行修改
motorcycles[0] = 'ducati'

print(motorcycles)

2、添加元素

在列表中添加新的元素,最簡單的方式是將元素附加到列表末尾。給列表附加元素時,它將添加到列表末尾。

motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

motorcycles.append('ducati')

print(motorcycles)

3、插入元素

使用insert() 方法可在列表的任何位置添加新元素。

motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

motorcycles.insert(0,'ducati')

print(motorcycles)
  • 刪除元素

1、使用del語句刪除元素

如果知道要刪除的元素在列表中的位置,可使用del語句;

motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

# 添加元素
motorcycles.insert(0,'ducati')

print(motorcycles)

# 刪除元素
del motorcycles[0]

print(motorcycles)

2、使用pop() 刪除元素

方法pop() 可刪除列表末尾的元素,並讓你能夠接着使用它。術語彈出(pop)源自這樣的類比:列表就像 一個棧,而刪除列表末尾的元素相當於彈出棧頂元素。

motorcycles = ['honda','yamaha','suzuki']

popped_motorcycle = motorcycles.pop()

print(motorcycles)

print(popped_motorcycle)

3、彈出列表中任何位置處的元素

實際上,你可以使用pop() 來刪除列表中任何位置的元素,只需在括號中指定要刪除的元素的索引即可。

motorcycles = ['honda','yamaha','suzuki']
frist_owned = motorcycles.pop(0)
print('The frist motorcycle I owned was a ' + frist_owned.title() + '。 ')

如果你不確定該使用del 語句還是pop() 方法,下面是一個簡單的判斷標準:如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del 語句;如果你要在刪除元 素後還能繼續使用它,就使用方法pop() 。

4、根據值刪除元素

有時候,你不知道要從列表中刪除的值所處的位置。如果你只知道要刪除的元素的值,可使用方法remove() 。 例如,假設我們要從列表motorcycles 中刪除值'ducati' 。

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles) 
motorcycles.remove('ducati')
print(motorcycles)

注意 方法remove() 只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用循環來判斷是否刪除了所有這樣的值。你將在第7章學習如何這樣做。

  • 組織列表

在你創建的列表中,元素的排列順序常常是無法預測的,因爲你並非總能控制用戶提供數據的順序。這雖然在大多數情況下都是不可避免的,但你經常需要以特定的順序呈現信 息。有時候,你希望保留列表元素最初的排列順序,而有時候又需要調整排列順序。Python提供了很多組織列表的方式,可根據具體情況選用。

  • 使用方法sort()對列表進行永久性排序

Python方法sort() 讓你能夠較爲輕鬆地對列表進行排序。假設你有一個汽車列表,並要讓其中的汽車按字母順序排列。爲簡化這項任務,我們假設該列表中的所有值都是小寫的。

cars = ['bmw','audi','toyota','subaru']

cars.sort()

print(cars)

方法sort() 永久性修改了列表元素的排序順序。

按與字母順序相反的順序排列列表元素,爲此,只需向sort() 方法傳遞參數reverse=True 。下面的示例將汽車列表按與字母順序相反的順序排列:

cars = ['bmw', 'audi', 'toyota', 'subaru']

cars.sort(reverse=True)

print(cars)
  • 使用函數sorted() 對列表進行臨時排序

要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函數sorted() 。函數sorted() 讓你能夠按特定順序顯示列表元素,同時不影響它們在列表中的原始排 列順序。 下面嘗試對汽車列表調用這個函數。

cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars) 
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the original list again:")
print(cars)
  • 倒着打印列表

要反轉列表元素的排列順序,可使用方法reverse() 。假設汽車列表是按購買時間排列的,可輕鬆地按相反的順序排列其中的汽車:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)

注意,reverse() 不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序:

方法reverse() 永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,爲此只需對列表再次調用reverse() 即可。

  • 確定列表長度

使用函數len() 可快速獲悉列表的長度。在下面的示例中,列表包含4個元素,因此其長度爲4:

cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
  • 使用列表時避免索引錯誤

剛開始使用列表時,經常會遇到一種錯誤。假設你有一個包含三個元素的列表,卻要求獲取第四個元素:

Traceback (most recent call last):

  File "motorcycles.py", line 3, in <module>

    print(motorcycles[3])

IndexError: list index out of range

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章