Python 列表(Lists)

2022-07-04 14:47 更新

Python 列表(Lists)

序列是 Python 中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字用來(lái)表示它的位置,索引,第一個(gè)索引是 0,第二個(gè)索引是 1,依此類推。

Python有 6 個(gè)序列的內(nèi)置類型,但最常見(jiàn)的是列表和元組。

序列都可以進(jìn)行的操作包括索引,切片,加,乘,檢查成員。

此外,Python 已經(jīng)內(nèi)置確定序列的長(zhǎng)度以及確定最大和最小的元素的方法。

列表是最常用的 Python 數(shù)據(jù)類型,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。

列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型

創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來(lái)即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

與字符串的索引一樣,列表索引從 0 開(kāi)始。列表可以進(jìn)行截取、組合等。


訪問(wèn)列表中的值

使用下標(biāo)索引來(lái)訪問(wèn)列表中的值,同樣你也可以使用方括號(hào)的形式截取字符,如下所示:

#!/usr/bin/python

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];

print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]

以上實(shí)例輸出結(jié)果:

list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]

更新列表

你可以對(duì)列表的數(shù)據(jù)項(xiàng)進(jìn)行修改或更新,你也可以使用 append() 方法來(lái)添加列表項(xiàng),如下所示:

#!/usr/bin/python

list = ['physics', 'chemistry', 1997, 2000];

print "Value available at index 2 : "
print list[2];
list[2] = 2001;
print "New value available at index 2 : "
print list[2];

注意:我們會(huì)在接下來(lái)的章節(jié)討論 append() 方法的使用

以上實(shí)例輸出結(jié)果:

Value available at index 2 :
1997
New value available at index 2 :
2001

刪除列表元素

可以使用 del 語(yǔ)句來(lái)刪除列表的的元素,如下實(shí)例:

#!/usr/bin/python

list1 = ['physics', 'chemistry', 1997, 2000];

print list1;
del list1[2];
print "After deleting value at index 2 : "
print list1;

以上實(shí)例輸出結(jié)果:

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

注意:我們會(huì)在接下來(lái)的章節(jié)討論 remove() 方法的使用


Python 列表腳本操作符

列表對(duì) + 和 * 的操作符與字符串相似。+ 號(hào)用于組合列表,* 號(hào)用于重復(fù)列表。

如下所示:

Python 表達(dá)式結(jié)果 描述
len([1, 2, 3])3長(zhǎng)度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]組合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重復(fù)
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print x,1 2 3迭代

Python 列表截取

Python 的列表截取與字符串操作類型,如下所示:

L = ['spam', 'Spam', 'SPAM!']

操作:

Python 表達(dá)式結(jié)果 描述
L[2]'SPAM!'讀取列表中第三個(gè)元素
L[-2]'Spam'讀取列表中倒數(shù)第二個(gè)元素
L[1:]['Spam', 'SPAM!']從第二個(gè)元素開(kāi)始截取列表

Python 列表函數(shù)&方法

Python 包含以下函數(shù):

序號(hào)函數(shù)
1cmp(list1, list2)
比較兩個(gè)列表的元素
2len(list)
列表元素個(gè)數(shù)
3max(list)
返回列表元素最大值
4min(list)
返回列表元素最小值
5list(seq)
將元組轉(zhuǎn)換為列表

Python 包含以下方法:

序號(hào)方法
1list.append(obj)
在列表末尾添加新的對(duì)象
2list.count(obj)
統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
3list.extend(seq)
在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)
4list.index(obj)
從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置
5list.insert(index, obj)
將對(duì)象插入列表
6list.pop(obj=list[-1])
移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
7list.remove(obj)
移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)
8list.reverse()
反向列表中元素
9list.sort([func])
對(duì)原列表進(jìn)行排序

實(shí)例:

如果 Python 列表無(wú)法正常輸出漢字,則可以采取以下的解決方法:

#encoding=utf-8
import json
#以下代碼是用來(lái)保證在線環(huán)境中運(yùn)行不報(bào)錯(cuò)的。
import sys  # 導(dǎo)入sys庫(kù)
reload(sys)
sys.setdefaultencoding('utf-8')  # 設(shè)置默認(rèn)的編碼字符集為utf-8,避免第14行的print在在線情況下報(bào)錯(cuò)
#本地環(huán)境可以不需要這部分代碼

list_words = [ '你', '我', '他' ]
print( list_words )                                        # 無(wú)法正常顯示漢字
print( str(list_words).decode( 'string_escape' ) )         # 正常顯示漢字

list_words_result = json.dumps( list_words, encoding='UTF-8', ensure_ascii=False )
print( list_words_result )

以上實(shí)例輸出結(jié)果:

['\xe4\xbd\xa0', '\xe6\x88\x91', '\xe4\xbb\x96']
['你', '我', '他']
["你", "我", "他"]


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)