1. 程式人生 > 實用技巧 >python-3-列表簡介

python-3-列表簡介

列表簡介

列表是什麼

列表由一系列按特定順序排列的元素組成。你可以建立包含字母表中所有的字母、數字0~9或所有家庭成員姓名的列表;也可以將任何東西加入列表中,其中的元素之間可以沒有任何關係。鑑於列表通常包含多個元素,給列表指定一個表示複數的名稱是一個不錯的主意。

在linux中,用方括號[]來表示列表,並用都好來分隔其中的元素。下面是幾個簡單的示例:

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> print(bicycle)

如果你讓python把列表打印出來就是

['trek', 'cannondale', 'redline', 'pecialized']

訪問列表元素

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

例如下面從bicycle中提取第一款自行車

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> printf(bicycle[0])

執行結果

>>> print(bicycle[0])
trek

當你訪問列元素時,python只返回該元素,而不包括方括號和引號。

還可以對字串呼叫第二章的字串方法

>>> print(bicycle[0].title())

輸出:

>>> print(bicycle[0].title())
Trek

索引從0而不是1開始

這和大多數程式語言一樣,此處不再贅述。

python有一種特殊的方法

>>> print(bicycle[-1])

可以直接訪問到列表的倒數第一個元素,-2可以訪問到列表倒數第二個元素

使用列表中的各個值

可像使用其他變數一樣使用列表中的值,下面是一個示例

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> message="My first bicycle was a " + bicycle[0].title() + '.'
>>> print(message)
My first bicycle was a Trek.

修改、新增和刪除元素

你建立的大多數列表都是動態的,這意味著列表建立後,將隨著程式的執行增刪元素。

修改列表元素:

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> print(bicycle)
['trek', 'cannondale', 'redline', 'pecialized']
>>> bicycle[0]='modify'
>>> print(bicycle)
['modify', 'cannondale', 'redline', 'pecialized']

在列表中新增元素:

  • 在表尾新增元素

    >>> bicycle = ['trek','cannondale','redline','pecialized']
    >>> bicycle.append('new')
    >>> print(bicycle)
    ['trek', 'cannondale', 'redline', 'pecialized', 'new']
    

    方法append()將元素‘new’新增到了表尾,而不影響其他元素,使得動態建立列表易如反掌

  • 在列表中插入元素

    使用方法insert()可在列表的任意位置新增新元素。為此,你需要指定新元素的索引和值

    >>> bicycle = ['trek','cannondale','redline','pecialized']
    >>> bicycle.insert(1,'new')
    >>> print(bicycle)
    ['trek', 'new', 'cannondale', 'redline', 'pecialized']
    

    方法insert()在索引處新增空間,並將‘new’儲存到這個地方。這種操作將列表中既有的每個元素都右移一個位置。

    從列表中刪除一個元素

  • 使用del語句刪除元素

    前提是要知道要刪除元素在列表中的位置

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> del bicycle[0]
>>> print(bicycle)
['cannondale', 'redline', 'pecialized']
  • 使用方法pop刪除元素

方法pop()來源於棧的彈出,使用方法pop()將會直接刪除列表末尾的元素,還可以獲得它的值

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> v1=bicycle.pop()
>>> print(v1)
pecialized
>>> print(bicycle)
['trek', 'cannondale', 'redline']
  • 彈出列表中任意位置的元素

實際上,你可以使用pop()方法彈出列表中任意位置的元素,只要在括號中加上索引即可

>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> v1=bicycle.pop(1)
>>> print(v1)
cannondale
>>> print(bicycle)
['trek', 'redline', 'pecialized']

pop()和del語句的區別是,當你使用pop()時,你可以得到刪除資料的值。

  • 根據值刪除元素

    remove()

    >>> bicycle = ['trek','cannondale','redline','pecialized']
    >>> bicycle.remove('redline')
    >>> print(bicycle)
    ['trek', 'cannondale', 'pecialized']
    

    如果列表有多個remove()指定的值,只會刪除第一個指定的值

>>> bicycle = ['trek','cannondale','redline','pecialized','redline']
>>> print(bicycle)
['trek', 'cannondale', 'redline', 'pecialized', 'redline']
>>> bicycle.remove('redline')
>>> print(bicycle)
['trek', 'cannondale', 'pecialized', 'redline']

組織列表

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

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

    注意:sort()方法永久的改變了列表元素的排列順序

    如果想要按字母順序相反的順序排序,只需想sort()方法傳遞引數reverse=True

    >>> cars = ['bmw','audi','toyota','subaru']
    >>> cars.sort(reverse=true)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'true' is not defined
    >>> cars.sort(reverse=True)
    >>> print(cars)
    ['toyota', 'subaru', 'bmw', 'audi']
    

    注意:這裡的True首字母必須是大寫的

    • 使用sorted()方法對列表進行臨時的排序,也可以向sorted()傳遞引數使得排序反向
    >>> cars = ['bmw','audi','toyota','subaru']
    >>> print(sorted(cars))
    ['audi', 'bmw', 'subaru', 'toyota']
    >>> cars = ['bmw','audi','toyota','subaru']
    >>> print(cars)
    ['bmw', 'audi', 'toyota', 'subaru']
    >>> print(sorted(cars))
    ['audi', 'bmw', 'subaru', 'toyota']
    >>> print(cars)
    ['bmw', 'audi', 'toyota', 'subaru']
    
    >>> print(sorted(cars,reverse=True))
    ['toyota', 'subaru', 'bmw', 'audi']
    
    • 倒著列印列表

      可以使用方法reverse()

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

      注意:reverse()不是按與字幕順序嫌犯的順序來排序列表元素,而只是飯莊列表元素的排列順序。

      方法reverse()永久性的修改列表元素的排列順序,但可隨時恢復到原來的排列順序,只需要對列表再次呼叫reverse()方法即可

  • 確定列表長度

    len()函式

    >>> cars = ['bmw','audi','toyota','subaru']
    >>> len(cars)
    4
    

    python計算列表元素數時從1開始,因此確定列表長度時,你應該不會遇到差一錯誤。