python學習之路(二)

2021-08-17 02:46:50 字數 4855 閱讀 4589

本章讓我們來說說python中的列表。python中的列表與c語言中的陣列相似,不過在python中對於列表的操作有很多。

1.列表介紹

什麼是列表?列表可以用來做什麼?

簡單的說列表就是由一系列按特定順序排列的元素組成,你可以將任何東西加入列表中,其中的元素可以沒有任何關係,因為列表通常包含很多資料,所以一般給列表指定個複數的名稱(如names,letters等)。

在python中用([ ])來表示列表,並用逗號將元素分隔開。下面就是乙個簡單的列表:

names = ['xiaoming','xiaohua','xiaoxiao']

print(names)

輸出:['xiaoming', 'xiaohua', 'xiaoxiao']
你可以看到如果將列表列印出來時,會將整個列表給列印出來,方括號也會列印出來。

訪問列表中的元素可以通過訪問該元素在列表中的位置或索引就可以找到該元素,與c語言中訪問陣列中的元素一樣,都是通過索引(下標)去訪問。下面演示訪問列表的第乙個元素:

names = ['xiaoming','xiaohua','xiaoxiao']

print(names[0])

輸出:xiaoming
可以看到通過names[0]就可以訪問到列表中的第乙個元素,注意這裡是0而不是1,在python中第乙個列表元素的索引是0而不是1,在大多數語言中都是如此.
現在假設一下,如果你要訪問列表的最後乙個元素,該怎麼辦?

你當然可以數出最後乙個元素的位置,然後在訪問這個元素,但如果當這個列表包含的元素有n個時呢?這種方法就明顯行不通了,在python中提供了一種非常簡單的訪問方法,就是將索引設定為-1,例如:

names = ['xiaoming','xiaohua','xiaoxiao']

print(names[2])

print(names[-1])

輸出:xiaoxiao

xiaoxiao

這樣子就可以訪問列表中的最後乙個元素了,當然你可以將索引設定為-2,這樣就會訪問倒數第二個元素了,以此類推。

2.修改,新增,刪除元素

2.1修改元素

修改元素的操作很簡單,首先你要確認你要修改元素的位置,然後訪問這個這個元素,並將該元素的值修改為你想要的值。例如:

names = ['xiaoming','xiaohua','xiaoxiao']

names[-1] = 'a'

print(names)

輸出:['xiaoming', 'xiaohua', 'a']

可以看出最後乙個元素的值已經成功修改了,通過這種方法你可以修改列表中任意位置的元素。

2.2 新增元素

在python中提供了多種為現有列表新增新資料的方式,現在介紹幾種。

1.在列表末尾新增元素

在列表中新增新元素時,最簡單的就是在列表末尾新增新元素了。

names = ['xiaoming','xiaohua','xiaoxiao']

print(names)

輸出:['xiaoming', 'xiaohua', 'xiaoxiao', 'b']

names = 

print(names)

輸出:['a', 'b', 'c']

2.在列表中插入元素

使用方法insert()可以在列表任何位置新增新元素,但是你需要指定插入元素的位置。例如:

names = ['a','b','c']

names.insert(1,'b')

print(names)

輸出:['a', 'b', 'b', 'c']

insert(插入位置,要插入的元素),這樣就通過方法insert()實現了在列表的任意位置插入元素了。

2.3從列表中刪除元素。

1.使用del語句刪除元素。

如果知道要刪除元素列表中的位置,可以使用del語句。例如:

names = ['a','b','c']

del names[0]

print(names)

輸出:['b', 'c']

通過del names[0]就可以刪除列表中第乙個元素的值了,如果要刪除列表中第二個的值,那麼只要將索引0改變為1就可以了,以此類推。

但是這樣刪除的值是無法再訪問了,例如:

names = ['a','b','c']

a = del names[0]

print(names)

print(a)

這樣做是錯誤的,用del 刪除的值是無法訪問的,變數a不能指向del語句刪除的值了。

2.通過方法pop()刪除元素。

有時候你需要使用列表中刪除的那個值時,比如**上需要將活躍使用者列表中的乙個使用者刪除,將其放入不活躍使用者中時,你就可以使用pop()方法來做了。

方法pop()可刪除列表末尾的元素,並能讓你接著使用它。例如:

names = ['a','b','c']

a = names.pop()

print(names)

print(a)

輸出:['a', 'b']

c現在可以看到,c已經從names列表中刪除,然後將其儲存在變數a中。

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

names = ['a','b','c']

a = names.pop(1)

print(names)

print(a)

輸出:['a', 'c']

b這樣就可以通過修改索引的值來修改刪除的元素了。

那我們在什麼情況下使用del語句,什麼情況下使用方法pop()呢?

如果你要從列表中刪除乙個元素,並且要使用它時,你就用pop(),當你確定你不會以任何形式使用該元素時,你就可以使用del語句。

3.通過值來刪除元素。

有時候我們不知道要刪除元素處於列表中的位置,只知道該元素的值,那麼我們可以使用方法remove()來根據值來刪除列表中的元素。例如:

names = ['a','b','c']

names.remove('c')

print(names)

輸出:['a', 'b']

通過 names.remove('要刪除的元素')就可刪除該元素了,,不過注意,方法remove()只能刪除第乙個指定的值,如果列表中有多個該元素,就要通過迴圈來判斷是否刪除完了。

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

例如:

names = ['a','c','b']

names.sort()

print(names)

輸出:['a', 'b', 'c']
注意這裡的列表中的元素都是小寫的,如果夾雜著大小寫會怎麼樣呢?試試看。
names = ['a','a','b','c','c']

names.sort()

print(names)

輸出:['a', 'c', 'a', 'b', 'c']
從這裡可以看出如果夾雜著大寫的話,會先對大寫元素進行排序,在對小寫元素進行排序,這是因為方法sort()是按照ascii碼來排序的,在ascii碼中大寫字母是排在小寫字母前面的。
3.2使用函式sorted()對列表進行臨時排序。

例如:

names = ['a','c','b',]

print(sorted(names))

print(names)

輸出:['a', 'b', 'c']

['a', 'c', 'b']

從輸出可以看出,呼叫sorted()函式只是對列表進行了臨時的排序,而不是永久性的排序。如果你要按與字母順序相反的順序顯示列表,你可以想函式sorted()傳遞引數reverse=true,例如:

names = ['a','c','b',]

print(sorted(names,reverse=true))

print(names)

輸出:

['c', 'b', 'a']

['a', 'c', 'b']

3.3倒著列印列表。

要反轉列表元素的排列順序,可以使用方法reverse()。例如:

names = ['a','c','b',]

names.reverse()

print(names)

輸出:['b', 'c', 'a']
注意:reverse()不是按與字母順序相反的順序排列元素,而是反轉列表元素的排列順序。雖然方法reverse()也是永久的修改列表,但是恢復列表的初始順序只需要再次使用reverse()方法即可。

3.4確定列表的長度。

使用函式len()可以快速獲取列表的長度。例如:

names = ['a','c','b',]

print(len(names))

輸出:3

通過len(列表名字)就可以快速獲取該列表的長度了,len()很有用,在當你需腰統計乙個列表中使用者的個數時,或者其它方面。

Python學習之路(二)

常用型別 注釋 以 開頭,行結束 數字 有數字,或者是 開頭的數字,有小數點為浮點數,沒有小數點為整數。支援科學計數法 字串 以單引號 雙引號 三引號開頭,同符號結束。布林值 true和false。大小寫敏感 空值 none 大小寫敏感 字串轉義 1.用 進行轉義 2.r aaa 來取消轉義 uni...

Python學習之路之二

距離第一天開始這課課程已經過了兩三天,才陸陸續續將第二章選擇了一部分實踐完成。我的耐心啊,好讓人捉急 詳細過程說明 mm,就涉及了一些框架的問題。第一種方案 利用pyspider框架支援phantomjs,所以主使用 pyspider 安裝好框架之後,安裝方法 就可以編寫 執行了,根據 此教程的 執...

python的學習之路(二)

1 字串內建功能練習 usr bin env python coding utf 8 author harson name harson name str harson type代表型別 print type name dir取出當前包含的元素 print dir name contains包含類似...