1. 程式人生 > >python3知識點之---------列表的介紹

python3知識點之---------列表的介紹

remove 返回值 還需 nbsp bbc 是我 應該 家庭 轉化

1.列表是什麽?

    它是由一系列特定順序排序的元素組成。元素可以表示一切任何的事物,元素之間可以沒有任何關系。列表用方括號[ ] 表示,元素之間由逗號隔開。

     例如表示一系列數字的列表: number = [2, 3, 4, 5, 23, 44, 74]

            家庭成員:names = ["Hyan", "Father", "Mom", "Son"]

     列表是可變的,也就是說可以對列表中的元素進行一系列操作。

2.訪問列表

    列表的訪問是通過索引(也就是元素的位置,不過第一個位置的索引是從0開始的),表現形式如下:

        number[0] = 2

        names[2] = "Mom"

    但是我想訪問部分元素,不止一個元素,這裏我們就會用到切片(切片主要用:隔開)先看一下下面的例子:

        number[0:3] = [2, 3, 4] #這裏的意思是從索引0開始訪問到索引3的元素(這裏強調的是不包括索引3的元素,並且返回的也是一個列表)。

        number[0:6:2] = [2, 4, 23] #這裏藍色的2意思是從索引0開始每隔2個(也就是步長,如果不寫,默認為1)訪問元素。

        number[:5] = [2, 3, 4, 5, 23] #沒有指定起始索引,默認從頭開始。

        number[1:] = [ 3, 4, 5, 23, 44, 74] #沒有指定末尾索引,從索引為1開始到最後。

    如果你不知道有多個元素,但想知道最後一個元素是啥?可以通過索引-1來訪問,如此類推倒數第二個索引為-2

        number[-1] = 74

        number[-2] = 44

        number[-3:] = [23, 44, 74]

    如果我想復制列表,對新的列表進行一系列操作而不改變原先的列表。

        number2 = number[:] #不需要起始和末尾索引。

        number2 = [2, 3, 4, 5, 23, 44, 74]

3.修改列表元素

    number = [2, 3, 4, 5, 23, 44, 74]

    number[0] = 8 #直接通過索引賦予新的元素值就行

    print("number =",number)

    number = [8, 3, 4, 5, 23, 44, 74]

    number[0:3] =[8, 9, 10] #也可以通過切片的形式修改部分元素

    print("number =",number)

    number = [8, 9, 10, 5, 23, 44, 74]

4.添加列表元素

   這裏就要用到一些內置的方法和函數了

   比如我想在number列表中末尾添加元素88,我們就要用到方法append(),如下所示: 

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3  
4 number = [2, 3, 4, 5, 23, 44, 74]
5 
6 number.append(88)  #對象與方法之間用點表示,這裏的number就是一個對象
7  
8 print("number =",number)
View Code

    結果為:

number = [2, 3, 4, 5, 23, 44, 74, 88]   

   這時候有人就說了,我不一定要添加到末尾,我要添加到我想要的位置,這個也是可以的,用方法insert(),如下所示: 

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 number = [2, 3, 4, 5, 23, 44, 74]
5 
6 number.insert(1, 88) #insert括號內的有兩個參數,第一個參數1表示你要放置的索引位>
7 
8 print("number =",number)
View Code

    結果為: 

number =  [2, 88, 3, 4, 5, 23, 44, 74]

5.刪除列表元素

    ① 如果知道要刪除元素的位置,並且這個元素不在需要了,可以用del語句

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 names = ["Hyan", "Father", "Mom", "Son"]
5 
6 del names[1]
7 
8 print("names =", names)
View Code

    結果為:

names = ["Hyan", "Mom", "Son"]

    ② 如果你刪除的元素,後面的操作還需要這個元素的話,可以用pop()方法

技術分享圖片
 1 #!/usr/bin/env python
 2 # encoding: utf-8
 3 
 4 names = ["Hyan", "Father", "Mom", "Son"]
 5 
 6 name = names.pop(2) #pop括號裏面的參數,是要刪除的該元素的索引值。如果括號內不寫,默認為刪除最後一個元素
 7 
 8 print("names =", names)
 9 
10 print(name)
View Code

    結果為:
names = ["Hyan", "Father", "Son"]

"Mom"

    ③ 如果你知道你要刪除哪個元素,但是不知道該元素所在的位置,可以用remove()方法

技術分享圖片
 1 #!/usr/bin/env python
 2 # encoding: utf-8
 3 
 4 names = ["Hyan", "Father", "Mom", "Son"]
 5 
 6 name = names.remove("Father") #remove()方法也可以保存刪除的元素,為以後可以繼續>
 7 
 8 print("names =", names)
 9 
10 print(name)
View Code
   結果為:
names = ["Hyan", "Mom", "Son"]

"Father"

6.組織列表

    ① 比如說我想給列表排個序,這個排序方式是按ASCII表方式排序的,可使用sort()方法

技術分享圖片
 1 #!/usr/bin/env python
 2 # encoding: utf-8
 3 
 4 number = [2, 4, 3, 44, 23, 5, 74] 
 5 
 6 number.sort()
 7 print("number =",number)
 8 
 9 number.sort(reverse=True) #括號內的參數表示先按ASCII表方式排序,然後在倒過來顯示
10 print("number_sort_reverse = ", number)
View Code
   結果為:
number = [2, 3, 4, 5, 23, 44, 74]
number_sort_reverse = [74, 44, 23, 5, 4, 3, 2]

② 上面所說的方法是永久的改變了列表排序,但是我只想臨時排序一下,不想改變原來的列表,這時候我們可以使用sorted()函數

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 number = [2, 4, 3, 44, 23, 5, 74]
5  
6 print("number_sorted =",sorted(number))
7 print("number_sorted_reverse =",sorted(number, reverse=True)) #括號內的參數跟上面一樣,先排序再倒過來                                
8 print("number =",number)
View Code
   結果為:
number_sorted = [2, 3, 4, 5, 23, 44, 74]
number_sorted_reverse = [74, 44, 23, 5, 4, 3, 2]
number = [2, 4, 3, 44, 23, 5, 74]

③ 如果我不想排序,我只想倒著打印列表,這時我們應該用reverse()方法

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 number = [2, 4, 3, 44, 23, 5, 74]
5 
6 number.reverse()
7 
8 print("number =",number)
View Code
   結果為:
number = [74, 5, 23, 44, 3, 4, 2]

7.其它一些常用的方法

    ① count()方法 計算某元素出現的個數

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 str = ["to", "be", "or", "not", "to", "be"]
5 
6 num = str.count("to")
7 
8 print("num =", num)
View Code
   結果為:
num = 2

extend()方法 用於在列表末尾一次性追加另一個序列中的多個值

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 a = [1, 2, 3]
5 b = [4, 5, 6]
6 
7 a.extend(b)
8 
9 print("a =", a)
View Code
   結果為:
a = [1, 2, 3, 4, 5, 6]

③ index()方法 查找你想要的元素所在位置的索引,如果列表中有相同的元素,只會查到第一個元素。 

技術分享圖片
1 1 #!/usr/bin/env python
2   2 # encoding: utf-8
3   3
4   4 a = [1, 2, 3, 4, 5, 6, 2, 4, 11]
5   5
6   6 num = a.index(2)
7   7 print("num =", num)
View Code
   結果為:
num = 1

list()函數,可以將一序列元素轉化為列表。

     例如我將創建數字列表,可以用list()range()的結果直接轉化為列表。其中,range()函數作用是生成一系列數字。

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 a = list(range(1,10)) #range()函數生成的數字跟索引一樣,最後一位元素不包括在內
5 
6 print(a)
View Code
   結果為:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

也可以將元組轉化為列表的返回值,不改變之前的元組。這裏稍微說一下,元組它是不可變的,用圓括號表示,可以用訪問列表方式訪問它,但不能修改裏面的元素

技術分享圖片
1 #!/usr/bin/env python
2 # encoding: utf-8
3 
4 names = ("Hyan", "Mom", "Son")
5 
6 family = list(names)
7 
8 print("names =", names)
9 print("family =", family)
View Code
   結果為:
names = (Hyan, Mom, Son)
family = [Hyan, Mom, Son]

python3知識點之---------列表的介紹