python筆記-3 列表
列表 []
列表是最常用的Python數(shù)據(jù)類型,創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來(lái)即可。
列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型
eg:? ? list1 = ['physics', 'chemistry', 1997, 2000]
列表索引從0開(kāi)始,第二個(gè)索引是1,依此類推。
訪問(wèn)列表中的值
使用下標(biāo)索引來(lái)訪問(wèn)列表中的值:
print "list1[0]: ", list1[0]? ---輸出??physics
也可以使用方括號(hào)的形式截取字符:
print "list1[1:3]: ", list2[1:3]? ??---輸出??chemistry,1997
更新列表
1,可以使用append()方法來(lái)添加列表項(xiàng):
list.append('Google') ? ## 使用 append() 向列表尾部添加一個(gè)新元素
2,extend()函數(shù)可以用新列表擴(kuò)展原來(lái)的列表。
aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)
print "Extended List : ", aList ;
--- 輸出??Extended List : ?[123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
3,insert()函數(shù)用于向Python列表中指定位置添加一個(gè)元素。
函數(shù)用法list.insert(index, item_value)
index:要插入列表中的位置? ? value:要插入的元素的值
4,+與+=功能實(shí)際上生成了一個(gè)新的列表來(lái)存放這兩個(gè)列表的和。
注意:使用拼接操作符 +擴(kuò)展列表 加號(hào)兩邊類型必須一致
刪除列表元素
1,remove()移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)。如果參數(shù)不存在會(huì)報(bào)錯(cuò)
aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.remove('xyz')
2,pop()移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
list.pop([index=-1])
可選參數(shù),要移除列表元素的索引值,不能超過(guò)列表總長(zhǎng)度,默認(rèn)為 index=-1,刪除最后一個(gè)列表值。
list1 = ['Google', 'Runoob', 'Taobao']
list_pop=list1.pop(1)
刪除的項(xiàng)為 : Runoob
列表現(xiàn)在為 : ?['Google', 'Taobao']
3,del ()刪除列表中對(duì)應(yīng)索引位置的元素:
list1 = ['physics', 'chemistry', 1997, 2000]?
del list1[2]
del 列表名稱,會(huì)刪除整個(gè)列表
更換位置
member=【“小布丁”,“黑夜”,【1,2,3】】
temp=member【0】
member【0】= member【1】
member【1】=temp
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!']?*=4? ? ? ? ? ? ? ?? ['Hi!', 'Hi!', 'Hi!', 'Hi!']? ? ? ? ? ? ? ? ? ? ? ? ? ? 重復(fù)
3 in [1, 2, 3]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?True? ? ? ? ? ? ? ? ? ? ? ? ? ?元素是否存在于列表中
for x in [1, 2, 3]: print x? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 2 3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?迭代
in
not in? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?還可以判斷具體索引位置 “小布丁” in member【0】
slice 切片
Python 列表支持以下切片語(yǔ)法,可以從一個(gè)列表中返回子列表:
sub_list = list[begin: end: step]
在以上語(yǔ)法中,begin、end 以及 step 參數(shù)都必須是有效的下標(biāo),而且它們都是可選參數(shù)。begin 下標(biāo)默認(rèn)為 0,end 下標(biāo)默認(rèn)為列表的長(zhǎng)度,step 下標(biāo)默認(rèn)為 1。
切片操作返回的子列表從 begin(包含)下標(biāo)開(kāi)始到 end(不包含)下標(biāo)結(jié)束,下標(biāo)每次增長(zhǎng) step。
begin、end 以及 step 可以為正數(shù)或者負(fù)數(shù)。正數(shù)表示切片操作從左至右返回子列表,負(fù)數(shù)表示切片操作從右至左返回子列表。
member【1:3】前含后不含。
不寫(xiě)表示最前或最后
前后都不寫(xiě) 得到列表的拷貝?
區(qū)別于=賦值
切片不會(huì)隨著原來(lái)的改變,是淺復(fù)制,指向的內(nèi)存地址不一樣,對(duì)一個(gè)列表做修改,也不改變另一個(gè)列表。
如果list8=list6,指向同一內(nèi)存塊,其中一個(gè)列表改變,另一個(gè)列表也會(huì)隨之改變。二者可以視為同一個(gè)對(duì)象。
列表比大小
比較原理
從第一個(gè)元素順序開(kāi)始比較,如果相等,則繼續(xù),返回第一個(gè)不相等元素得比較結(jié)果。如果所有元素比較均相等,則長(zhǎng)的列表大,一樣長(zhǎng)則兩列表相等。
Python列表函數(shù)&方法
Python包含以下函數(shù):
1??cmp(list1, list2)
比較兩個(gè)列表的元素
2??len(list)
列表元素個(gè)數(shù)
3??max(list)
返回列表元素最大值
4??min(list)
返回列表元素最小值
5??list(seq)
將元組轉(zhuǎn)換為列表
Python包含以下方法:(列表內(nèi)置方法 用點(diǎn).??表示范圍)
1??list.append(obj)
在列表末尾添加新的對(duì)象
2??list.count(obj)
統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
3??list.extend(seq)
在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)
4??list.index(obj)
從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置,
返回元素在列表中的位置索引,可以加查找范圍
5??list.insert(index, obj)
將對(duì)象插入列表
6??list.pop([index=-1])
移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
7??list.remove(obj)
移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)
8??list.reverse()
用于反向列表中的元素 原地翻轉(zhuǎn)
9??list.sort(cmp=None, key=None, reverse=False)
對(duì)原列表進(jìn)行排序?默認(rèn)從小到大排序
sort(reverse=true) 可以添加參數(shù),從大到小排