python创建一个空列表alist_【Python 1-7】Python手把手教程之——详解列表List
列表
作者 | 弗拉德
來源 | 弗拉德(公眾號:fulade_me)
列表,在其他語言中又被稱為數組,是由一系列按特定順序排列的元素組成。你可以創建包含字母表中所有字母、數字0~9或所有家庭成員姓名的列表。你也可以創建幾個列表,把這幾個列表又放在一個列表內。
在Python中,用方括號[]來表示列表,并用逗號來分隔其中的元素。下面是一個簡單的列表示例,這個列表包含幾種常見的水果:fruits = ['Apple','Banana','Pear','Orange']
print(fruits)
['Apple','Banana','Pear','Orange']
訪問列表數據
列表是有序的數據集合,每一個元素都有一個位置參數。比如上面的fruits列表里面,其中Apple的位置參數是0,Banana位置參數是1。要訪問列表元素,可指出列表的名稱,再指出元素的索引,并將其放在方括號內。
例如,下面的代碼從列表fruits中選出第一種水果:fruits = ['Apple','Banana','Pear','Orange']
print(fruits[0])
Apple
索引是從0開始的
所有的列表位置參數都是從0開始的而不是從1開始的,對于初學者,這個一定要記牢。如果在編碼過程中發現取出的元素跟自己預期的不一樣,請看看你是否犯了這種簡單的錯誤。
第二個列表元素的索引為1。根據這種簡單的計數方式,要訪問列表的任何元素,都可將其位置減1,并將結果作為索引。例如,要訪問第4個列表元素,可使用索引3。
下面的代碼訪問索引1和3處的水果:fruits = ['Apple','Banana','Pear','Orange']
print(fruits[1])
print(fruits[3])
Banana
Orange
Python為訪問最后一個列表元素提供了一種特殊語法。通過將索引指定為-1,可讓Python返回最后一個列表元素:fruits = ['Apple','Banana','Pear','Orange']
print(fruits[-1])
Orange
這里返回的是Orange。這種語法很有用,因為你經常需要在不知道列表長度的情況下訪問最后的元素。
這種約定也適用于其他負數索引,例如:索引-2返回倒數第二個列表元素, 索引-3返回倒數第三個列表元素,以此類推。
修改列表元素
要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。
例如,假設有一個水果列表,其中的第一個元素為Apple,如何修改它的值呢?fruits = ['Apple','Banana','Pear','Orange']
print(fruits[0])
print(fruits)
Apple
['Apple','Banana','Pear','Orange']
# 開始把第一個元素修改為 Cherry
fruits[0] = 'Cherry'
print(fruits[0])
print(fruits)
Cherry
['Cherry','Banana','Pear','Orange']
在列表中添加元素
你可能出于很多原因要在列表中添加新元素。比如商場里又新增加了一種水果,需要在fruits里面中再新增一種水果。Python提供了多種在既有列表中添加新數據的方式。
1.在列表末尾添加元素
在列表中添加新元素時,最簡單的方式是將元素附加到列表末尾。fruits = ['Apple','Banana','Pear','Orange']
print(fruits)
fruits.append('Cherry')
print(fruits)
方法append()將元素Cherry添加到了列表末尾,而不影響列表中的其他所有元素。['Apple','Banana','Pear','Orange']
['Apple','Banana','Pear','Orange','Cherry']
append()可以很好的滿足我們動態創建數組的需求。例如,我們可以先創建一個空的列表,在使用一系列的append()語句來動態的添加元素。
例如:fruits = []
fruits.append('Apple')
fruits.append('Banana')
fruits.append('Pear')
print(fruits)
['Apple','Banana','Pear']
這種創建方式比較常見,因為很多時候,我們在代碼的執行過程中才會知道哪些元素需要添加到列表中,哪些元素不需要添加。
2.在列表中插入元素
使用方法insert()可在列表的任何位置添加新元素。但是,你需要指定新元素的索引和值。fruits = ['Apple','Banana','Pear']
fruits.insert(0,'Orange')
print(fruits)
['Orange','Apple','Banana','Pear']
在該實例中,Orange被插入到了索引為0的這個位置。這種操作會使列表內的其他的每個元素都右移一個位置。
需要注意的是:插入數據的索引不能超過列表當前最大的索引值,如果我們執行fruits.insert(10,'Orange')就會報錯。你可以試一下。
從列表中刪除元素
我們經常需要從列表中刪除一個元素,比如說有Apple這種水果因為缺貨需要下架了,我們需要將Apple從列表中移除掉。你可以根據位置或值來刪除列表中的元素。
1.使用del語句刪除元素
如果知道要刪除的元素在列表中的位置,可直接使用del語句。fruits = ['Apple','Banana','Pear']
print(fruits)
['Apple','Banana','Pear']
del fruits[0]
print(fruits)
['Banana','Pear']
使用del可刪除任何位置處的列表元素,條件是知道其索引。下例演示了如何刪除fruits列表中的第二個元素fruits = ['Apple','Banana','Pear']
print(fruits)
['Apple','Banana','Pear']
del fruits[1]
print(fruits)
['Apple','Pear']
從輸出來看,第二個元素已經被刪除了。
2.使用方法pop()刪除元素
有時候,你要將元素從列表中刪除,并接著使用它的值。比如你下架了某種水果,需要把這種水果放入到明天的采購列表中。
方法pop()可刪除列表末尾的元素,并讓你能夠接著使用它。fruits = ['Apple','Banana','Pear']
print(fruits)
poped_fruit = fruits.pop()
print(fruits)
['Apple', 'Banana']
print(poped_fruit)
Pear
執行pop()方法后,原數組最后一個元素被移除掉且最后一個元素作為返回值被返回。
3.pop列表中任何位置處的元素
想必你已經猜到了,我們只需要在pop()方法內傳入想移除的元素索引就可以。fruits = ['Apple','Banana','Pear']
print(fruits)
['Apple', 'Banana', 'Pear']
first_fruit = fruits.pop(0)
print(first_fruit)
Apple
別忘了,每當你使用pop()時,被彈出的元素就不再在列表中了。
如果你不確定該使用del語句還是pop()方法,下面是一個簡單的判斷標準: 如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del語句,如果你要在刪除元素后還能繼續使用它,就使用方法pop()。
4.根據值刪除元素
有時候,我們并不知道要從列表中刪除的值所處的位置。如果你只知道要刪除的元素的值,可使用remove()方法。fruits = ['Apple','Banana','Pear']
print(fruits)
['Apple', 'Banana', 'Pear']
fruits.remove('Apple')
print(fruits)
['Banana', 'Pear']
方法remove()只刪除在列表中出現的第一個指定的值。也就是說假如Apple在fruits列表中出現了多次,調用remove()方法,只會刪除第一個Apple。fruits = ['Apple','Banana','Pear','Apple']
print(fruits)
['Apple', 'Banana', 'Pear','Apple']
fruits.remove('Apple')
print(fruits)
['Banana', 'Pear','Apple']
整合列表
在我們創建的列表中,元素的排列順序常常是無法預測的。因為我們并非總能控制用戶提供數據的順序。我們又經常需要以特定的順序呈現信息。有時候,你希望保留列表元素最初的排列順序,而有時候又需要調整排列順序。Python提供了很多組織列表的方式,可根據具體情況選用。
使用方法sort()對列表進行永久性排序
Python方法sort()讓你能夠輕松地對列表進行排序。假設你有一個水果列表,并要讓其中的水果按字母順序排列。為簡化這項任務,我們假設該列表中的所有值都是小寫的。fruits = ['pear','banana','apple']
print(fruits)
['pear', 'banana', 'apple']
fruits.sort()
print(fruits)
['apple', 'banana', 'pear']
方法sort()永久性地修改了列表元素的排列順序。現在,fruits是按字母順序排列的,再也無法恢復到原來的排列順序。
我們還可以按與字母順序相反的順序排列列表元素,為此,只需向sort()方法傳遞參數reverse=True即可。fruits.sort(reverse=True)
print(fruits)
['pear', 'banana', 'apple']
使用函數sorted()對列表進行臨時排序
要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函數sorted()。函數sorted()讓你能夠按特定順序顯示列表元素,同時不影響它們在列表中的原始排列順序。下面嘗試對fruits列表調用這個函數。fruits = ['pear','banana','apple']
print(fruits)
['pear', 'banana', 'apple']
print(sorted(fruits))
['apple', 'banana', 'pear']
# 再一次輸出 fruits
print(fruits)
['pear', 'banana', 'apple']
注意,調用函數sorted()后,列表元素的排列順序并沒有變。如果你要按與字母順序相反的順序顯示列表,也可向函數sorted()傳遞參數reverse=True。
在并非所有的值都是小寫時,按字母順序排列列表要復雜些,這個問題我們后面再詳細解答。
倒序輸出列表
要反轉列表元素的排列順序,可使用方法reverse()。假設fruist列表是按購買時間排列的,可輕松地按相反的順序排列其中的水果:fruits = ['pear','banana','apple']
print(fruits)
['pear', 'banana', 'apple']
fruits.reverse()
print(fruits)
['apple', 'banana', 'pear']
reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序。
方法reverse()永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,為此 只需對列表再次調用reverse()即可
列表的長度
使用函數len()可快速獲悉列表的長度fruits = ['pear','banana','apple']
len(fruits)
3
獲取列表的長度在開發過程中很有用,比如我們利用len()方法一下就可以獲取到當前有多少種水果正在銷售。
動手試一試7-1 將一些朋友的姓名存儲在一個列表中,并將其命名為 names。依次訪問該列表中的每個元素,從而將每個朋友的姓名都打印出來。
7-2 嘉賓名單: 如果你可以邀請任何人一起共進晚餐(無論是在世的還是故去的),你會邀請哪些人?請創建一個列表,其中包含至少 3 個你想邀請的人,然后,打印列表。
7-3 修改嘉賓名單:你剛得知有位嘉賓無法赴約,因此需要另外邀請一位嘉賓。修改嘉賓名單,將無法赴約的嘉賓的姓名替換為新邀請的嘉賓的姓名。
然后再一次打印這個列表。
7-4 添加嘉賓:你剛找到了一個更大的餐桌,可容納更多的嘉賓。請想想你還想邀請哪三位嘉賓。
使用 insert()將一位新嘉賓添加到名單開頭。
使用 insert()將另一位新嘉賓添加到名單中間。
使用 append()將最后一位新嘉賓添加到名單末尾。
7-5 縮減名單: 你剛得知新購買的餐桌無法及時送達,因此只能邀請兩位嘉賓。 使用pop()不斷地刪除名單中的嘉賓,直到只有兩位嘉賓為止。每次從名單中彈出一位嘉賓時,都打印一下。
7-7 放眼世界: 想出至少 5 個你渴望去旅游的地方。將這些地方存儲在一個列表中,并確保其中的元素不是按字母順序排列的。按原始排列順序打印該列表。不要考慮輸出是否整潔的問題,只管打印原始Python 列表。
使用 sorted()按字母順序打印這個列表,同時不要修改它。再次打印該列表,核實排列順序未變。
使用 sorted()按與字母順序相反的順序打印這個列表,同時不要修改它。再次打印該列表,核實排列順序未變。
使用 reverse()修改列表元素的排列順序。打印該列表,核實排列順序確實變了。
使用 reverse()再次修改列表元素的排列順序。打印該列表,核實已恢復到原來的排列順序。
使用 sort()修改該列表,使其元素按字母順序排列。打印該列表,核實排列順序確實變了。
使用 sort()修改該列表,使其元素按與字母順序相反的順序排列。打印該列表,核實排列順序確實變了。
想查看作業答案可以去我的Githu倉庫
總結
以上是生活随笔為你收集整理的python创建一个空列表alist_【Python 1-7】Python手把手教程之——详解列表List的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据项目一般金额多少_大数据分析师年薪
- 下一篇: python popen sqlplus