(9)基本對象類型--列表相關方法/函數(P2)

1. 基本對象類型(python里面一切皆是對象)

(接前文)


1.5.4 列表相關方法/函數

1.5.4.1 len() 返回列表元素個數。

>>>citys = ['beijing', 'shanghai', 'shenzhen','tianjin']

>>>len(citys)? #返回4


1.5.4.2 append() 列表末尾添加新的對象。

該方法沒有返回值

示例:

>>>citys = ['beijing', 'shanghai', 'shenzhen']

>>>citys.append('tianjin')


1.5.4.3 insert() 將指定對象插入列表的指定位置。

語法:list.insert(index, obj)

參數:

index -- 對象obj需要插入的索引位置。

obj -- 要插入列表中的對象。

示例:

>>>list1 = ['Google', 'Runoob', 'Taobao']

>>>list1.insert(1, 'Baidu')

>>>list1? #輸出['Google', 'Baidu', 'Runoob', 'Taobao']


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

用新列表擴展原來的列表。

示例:

>>>list1 = ['Google', 'Runoob', 'Taobao']

>>>list2=list(range(5)) # 創(chuàng)建 0-4 的列表

>>>list1.extend(list2)? # 擴展列表

>>>list1 #返回 ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]


1.5.4.5 提示性補充append和extend區(qū)別

appcend是在列表最后面追加一個元素

extend是在A列表最后面追加一個B列表,對A列表拓展。

? 示例(添加的元素為列表/元組時)):

>>> citys1 = ['beijing', 'shanghai', 'shenzhen']

>>> citys2 = ['tianjing', 'shanghai']

>>> citys1.append(citys2)

>>> citys1 #append方法將citys2列表整體作為一個元素追加到citys1中

輸出 ['beijing', 'shanghai', 'shenzhen', ['tianjing', 'shanghai']]? 注意:作為元素追加的子列表['tianjing', 'shanghai'],在citys1中存放的仍是引用,而不是具體數據,修改了citys2,citys1也會同時變。

>>> citys1 = ['beijing', 'shanghai', 'shenzhen']

>>> citys2 = ['tianjing', 'shanghai']

>>> citys1.extend(citys2)

>>> citys1 #extend方法將citys2列表中的元素作為元素追加到citys1中

輸入 ['beijing', 'shanghai', 'shenzhen', 'tianjing', 'shanghai']

? 示例(添加的元素為字符串,)

>>> aList = [1,2,3]

>>> b = 'abc'

>>> aList.append(b)

>>> aList

輸出: [1, 2, 3, 'abc']

>>> aList = [1,2,3]

>>> b = 'abc'

>>> aList.extend(b)

>>> aList #注意:extend會將字符串中的每個字符當做一個元素,將字符串看成由一個個字符組成的列表。

輸出:[1, 2, 3, 'a', 'b', 'c']

? 示例(添加的元素為數 值類型)

>>> aList = [1,2,3]

>>> b = 456

>>> aList.append(b)

>>> aList

輸出:[1, 2, 3, 456]

>>> aList = [1,2,3]

>>> b = 456

>>> aList.extend(b)

Traceback (most recent call last):

? File "<pyshell>", line 1, in <module>

TypeError: 'int' object is not iterable

報錯,提示int類型不是iterable。iterable后續(xù)章節(jié)詳細說明


1.5.4.6 del 刪除元素或整個列表

刪除指定列表索引的元素。可以切片形式指定待刪除的元素。

示例:

>>> list1 = ['Google', 'Runoob', 'Taobao']

>>> del list1[1]? #刪除索引為1的元素,即'Runoob'

>>> list1 #輸出 ['Google', 'Taobao']

>>> list1=['Google', 'Runoob', 'Taobao']

>>> del list1[:2] #刪除前面2個元素

>>> list1 #輸出['Taobao']

>>> list1=['Google', 'Runoob', 'Taobao']

>>> del list1[:] #清空列表,類似list1.clear()方法

注意:del命令可以刪除整個對象。示例:

>>> list1=['Google', 'Runoob', 'Taobao']

>>> del list1

>>> list1 #拋出異常,list1已經不存在了


1.5.4.7 pop() 移除列表中的某元素(默認最后一個元素),并且返回該元素的值。

語法:list.pop([index=-1])

參數:

index -- 可選參數,要移除列表元素的索引值,不能超過列表總長度,默認為 index=-1,刪除最后一個列表值。

返回值該方法返回從列表中移除的元素對象。

示例:

>>>list1 = ['Google', 'Runoob', 'Taobao']

>>>list1.pop() #移除最后一個

>>>list1.pop(1) #移除下標為1的對象


1.5.4.8 remove() 移除列表中某個值的第一個匹配項。

示例:

>>>list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']

>>>list1.remove('Taobao')? #只移除第一個


1.5.4.9 clear() 函數用于清空列表

類似于 del a[:]。

示例:

>>>aList = ['Goo', 'Tao','Run', 'Face']

>>>aList.clear()

>>>aList #輸出[],空列表

>>>aList = ['Goo',? 'Tao','Run', 'Face']

>>>del aList[:] #與aList.clear()等效

>>>aList? #輸出[],空列表

--copy() 函數用于復制列表

語法:list.copy()

修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。(字符串則不可以)

示例:

>>> citys = ['beijing', 'shanghai', 'shenzhen','tianjin']

>>> city[2] = 'guangzhou'

>>> citys[2] = 'guangzhou'

>>> citys #輸出 ['beijing', 'shanghai', 'guangzhou', 'tianjin']


1.5.4.10 index() 列表中找出某個值第一個匹配項的索引位置。

語法

list.index(x[, start[, end]])

參數

x-- 查找的對象。

start-- 可選,查找的起始位置。

end-- 可選,查找的結束位置。

返回值查找對象的索引位置,如果沒有找到對象則拋出異常。

示例:

>>>list1 = ['Google', 'Runoob', 'Taobao']

>>>index('Runoob') #返回1

>>>list1.index('Runoob',1,3)) #返回1


1.5.4.11 reverse() 函數用于反向列表中元素。

示例:

>>> list1 = ['Google', 'Runoob', 'Taobao']

>>> list1.reverse()

>>> list1 輸出['Taobao', 'Runoob', 'Google']

說明:用切片反轉同樣可以達到效果,但列表值不會變,reverse方法反轉,列表值會改變(內存地址不變)。

>>> list1 = ['Google', 'Runoob', 'Taobao']

>>> list1[::-1] 輸出['Taobao', 'Runoob', 'Google']


1.5.4.12 sort()? 對列表永久性排序

語法:list.sort( key=None, reverse=False)

key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。

reverse -- 排序規(guī)則,reverse = True 降序, reverse = False 升序(默認)。

示例:

>>>aList = ['Goo', 'Tao','Run', 'Face']

>>>aList.sort() #默認升序

>>>aList #輸出['Face', 'Goo', 'Run', 'Tao'],字符串排序按第一個字母來,第一個字母相同按第二個

>>>aList.sort(reverse=True)? #降序

>>>aList? #輸出['Tao', 'Run', 'Goo', 'Face']

# 獲取列表的第二個元素,定義迭代函數

>>>def takeSecond(elem):

? ? return elem[1]

>>>random = [('Goo',3), ('Tao',2),('Run',1), ('Face',4)]

>>>random.sort(key=takeSecond) # 指定第二個元素排序

>>>random? #輸出[('Run', 1), ('Tao', 2), ('Goo', 3), ('Face', 4)]


1.5.4.13 sorted() 對列表進行臨時排序

sorted() 函數對所有可迭代的對象(包括list)進行排序操作。

? sort 與 sorted 區(qū)別:

a)sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。

b)list 的 sort 方法返回的是對已經存在的列表進行操作,改變已存在列表值,方法無返回值,而sorted 方法返回的是一個新的 list,不改變元對象的值

? sorted 語法:

sorted(iterable, cmp=None, key=None, reverse=False)

參數說明:

iterable -- 可迭代對象。

cmp -- 比較的函數,這個具有兩個參數,參數的值都是從可迭代對象中取出,此函數必須遵守的規(guī)則為,大于則返回1,小于則返回-1,等于則返回0。

key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。

reverse -- 排序規(guī)則,reverse = True 降序 , reverse = False 升序(默認)。

返回值:返回重新排序的列表。

示例:

>>>a = [5,7,6,3,4,1,2]

>>> b = sorted(a)

>>> a #輸出[5, 7, 6, 3, 4, 1, 2],原列表不變

>>> b #[1, 2, 3, 4, 5, 6, 7],排序后的新列表

>>>list1=[('g',2),('a',9),('c',3),('d',4)]

>>> sorted(list1, key=lambda x:x[1])?

#利用key對元素的第二個子元素升序,輸出 [('g', 2), ('c', 3), ('d', 4), ('a', 9)]

>>>sorted(list1, key=lambda x:x[0],reverse=True)?

#利用key對元素的第一個子元素降序,輸出[('g', 2), ('d', 4), ('c', 3), ('a', 9)]

>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

>>> sorted(students, key=lambda s: s[2], reverse=True)

#按對元素的第三個子元素(年齡)降序,輸出[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

>>>list1=[('g',2),('a',9),('c',3),('d',4)]

>>> sorted(list1, cmp=lambda x,y:cmp(x[1],y[1]))? # 利用cmp函數 教程中示例語法錯誤,無法執(zhí)行


1.5.4.14 count() 統(tǒng)計某個元素在列表中出現的次數。

示例:

>>>citys = ['beijing', 'shanghai', 'shenzhen','beijing']

>>>citys.count('beijing')? #輸出2

>>>citys.count('bei')? #輸出0


1.5.4.15 list() 將元組或字符串轉換為列表。

類型轉換函數。若是字符串,則會將每個字符作為一個元素。

格式:lis(序列)

示例:

>>> str='abc123'

>>> list(str) #輸出['a', 'b', 'c', '1', '2', '3']

>>> tuple1=('shanghai','bejing','tianjing')

>>> list(tuple1) #輸出['shanghai', 'bejing', 'tianjing']

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容