1. 程式人生 > >《零基礎入門學習Python》(10)--列表:一個打了激素的陣列(一)

《零基礎入門學習Python》(10)--列表:一個打了激素的陣列(一)

 

前言

有時候我們需要把一些東西暫時儲存起來,因為他們有著一些直接或間接的聯絡,我們需要把它們放在某個組或者集合中,未來可能用得上。

很多接觸過程式設計的朋友都知道,都接觸過陣列這個概念,那麼陣列這個概念事實上很簡單,把一大堆同總型別資料挨個擺在一塊,然後通過陣列的下標進行索引,但是陣列有一個基本的要求,你所放在一起的資料必須型別要一致。

由於Python的變數沒有資料型別,所以按這個節奏來說,Python是沒有陣列的,但是Python加入了更加強大的列表。如果把陣列比作是一個集裝箱的話,那麼Python的列表就是一個工廠的倉庫,基本上所有的Python程式都需要使用到我們的列表,包括我們之前的打飛機遊戲。

知識點

建立列表

  • 建立一個普通列表
>>> member = ['小甲魚','小布丁','黑夜','怡靜']
>>> member
['小甲魚', '小布丁', '黑夜', '怡靜']
>>> number = [1,2,3,4,5]
>>> number
[1, 2, 3, 4, 5]
  • 建立一個混合列表
>>> mix = [1,'小甲魚',3.14,[1,2,3]]
>>> mix
[1, '小甲魚', 3.14, [1, 2, 3]]
  • 建立一個空列表
>>> empty = []
>>> empty
[]

向列表新增元素

  • append()

>>> member
['小甲魚', '小布丁', '黑夜', '怡靜']
>>> member.append()('葫蘆娃哇')#錯誤舉例
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    member.append()('葫蘆娃哇')
TypeError: append() takes exactly one argument (0 given)
>>> member.append('葫蘆娃哇')
>>> member
['小甲魚', '小布丁', '黑夜', '怡靜', '葫蘆娃哇']
>>> 
>>> member.append('竹林小溪','Crazy迷戀')
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    member.append('竹林小溪','Crazy迷戀')
TypeError: append() takes exactly one argument (2 given)
  • extend()(用一個列表,擴充套件另一個列表)

>>> member.extend('竹林小溪','Crazy迷戀')
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    member.extend('竹林小溪','Crazy迷戀')
TypeError: extend() takes exactly one argument (2 given)
>>> member.extend(['竹林小溪','Crazy迷戀'])#另一個列表
>>> member
['小甲魚', '小布丁', '黑夜', '怡靜', '葫蘆娃哇', '竹林小溪', 'Crazy迷戀']
>>> 
  • insert()(有兩個引數,第一個引數代表在列表中的位置,第二個引數表示在第一個引數的位置插入一個元素

>>> member.insert(0,'牡丹')
>>> member
['牡丹', '小甲魚', '小布丁', '黑夜', '怡靜', '葫蘆娃哇', '竹林小溪', 'Crazy迷戀']
>>> 

課後習題

測試題

1.列表可以存放一些什麼東西

#它可以存放我們已經學習過的任何資料型別。 
>>> mix = [1,'小甲魚',3.14,[1,2,3]]

2.向列表增加元素有哪些方法?

append(),extend(),insert()

3. append()方法和extend()方法都是向列表末尾增加元素,請問他們有什麼區別?

apend()方法是將引數作為一個元素增加到列表的末尾。

extend()方法是將引數作為一個列表去擴充套件列表的末尾。 
 示例: 

  >>> a = [1,2.3] 
  >>>a.append([4,5]) 
  >>> a 
  [1, 2.3, [4, 5]] 
  >>> a.extend([4,5]) 
  >>> a 
  [1, 2.3, [4, 5], 4, 5]

 4.有列表name = ['F','i','h','C'],如果小甲魚想在元素ih之間插入元素s,應該用什麼方法插入?

>>> name = ['F','i','h','C'] 
>>> 
>>> name.insert(2,'s') 
>>> name 
['F', 'i', 's', 'h', 'C']

動動手

動動手看,並分析在這種情況下,向列表新增資料應當採用哪種方法比較好?

假設給定以下列表:

member = ['小甲魚','黑夜','迷途','怡靜','秋舞斜陽']

要求將列表修改為:

member = ['小甲魚',88,'黑夜',90,'迷途',85,'怡靜',90,'秋舞斜陽',88]

方法一:使用insert() 和append方法修改列表

>>> member = ['小甲魚','黑夜','迷途','怡靜','秋舞斜陽']
>>> member.insert(1,88)
>>> member.insert(3,90)
>>> member.insert(5,85)
>>> member.insert(7,90)
>>> member.append(88)
>>> member
['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88]

方法二:重新建立一個痛名字的列表覆蓋

>>> member = ['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88]
>>> member
['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88

利用for迴圈列印上邊member列表中的內容,如圖:

>>> for i in member:
	print(i)

小甲魚
88
黑夜
90
迷途
85
怡靜
90
秋舞斜陽
88
  • 上一題列印的格式不是很好,能不能修改一下程式碼列印成下圖的樣式?(至少兩種方法) 

    member = ['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88]
    
    count = 0
    length = len(member)
    while count < len(member):
        print(member[count],member[count+1])
        count += 2
    
    === RESTART: C:/Users/ThinkPad/AppData/Local/Programs/Python/Python36/3.py ===
    小甲魚 88
    黑夜 90
    迷途 85
    怡靜 90
    秋舞斜陽 88
    
    ------------------------------------------------
    member = ['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88]
    
    for i in range(len(member)):
        if i%2 == 0:
            print(member[i],member[i+1])
    
    === RESTART: C:/Users/ThinkPad/AppData/Local/Programs/Python/Python36/3.py ===
    小甲魚 88
    黑夜 90
    迷途 85
    怡靜 90
    秋舞斜陽 88