成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

python-數(shù)據(jù)類(lèi)型之列表

Fourierr / 1090人閱讀

摘要:是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),是中使用最頻繁的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),可以完成大多數(shù)數(shù)據(jù)集合類(lèi)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。支持字符數(shù)字字符串甚至還可以嵌套列表元組字典等。一列表的創(chuàng)建是表示,內(nèi)部元素間用逗號(hào)隔開(kāi)。

List是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),是python中使用最頻繁的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),可以完成大多數(shù)數(shù)據(jù)集合類(lèi)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。支持字符、數(shù)字、字符串甚至還可以嵌套列表、元組、字典等。

(一)列表的創(chuàng)建
(1)List是[]表示,內(nèi)部元素間用逗號(hào)隔開(kāi)。
(2)List中可以放元組、字典、列表、字符串、類(lèi)、內(nèi)建函數(shù)等。
(3)創(chuàng)建一個(gè)列表就像給一個(gè)變量賦值一樣的簡(jiǎn)單.你手工寫(xiě)一個(gè)列表(空的或者有值的都行)然后賦給一個(gè)變量,列表是由方括號(hào)([])來(lái)定義的,當(dāng)然,你也可以用工廠方法來(lái)創(chuàng)建它.
代碼:

>>> alist=[123,"abc",4.56,["inner","list"],7-9j]
>>> anotherList=[None,"something to see here"]
>>> print alist
[123, "abc", 4.56, ["inner", "list"], (7-9j)]
>>> print anotherList
[None, "something to see here"]
>>> aListThatStartedEmpty=[]
>>> print aListThatStartedEmpty
[]
>>> list("fool")       #工廠方法
["f", "o", "o", "l"]

(二)列表的基本操作
列表的基本操作:增刪改查
(1)讀?。ㄔL問(wèn)列表的值):列表的切片操作就像字符串中一樣;切片操作符([])和索引值或索引值范圍一起使用

>>> lista=[1,2,3,4]
>>> print lista[0]
>>> print lista[-1]
>>> print lista[1]
>>> print lista[-2]

(2)修改(更新列表):可以通過(guò)在等號(hào)的左邊指定一個(gè)索引或者索引范圍的方式來(lái)更新一個(gè)或幾個(gè)元素,你也可以用 append()方法來(lái)追加元素到列表中。

>>> lista[0]+=10
>>> lista[0:3]=[3,4,5,6]
>>> lista
[3, 4, 5, 6, 4]

(3)遍歷:

 >>> for i in lista:
 ...     print i

(4)刪除:要?jiǎng)h除列表中的元素,如果你確切的知道要?jiǎng)h除元素的素引可以用 del 語(yǔ)句,否則可以用remove()方法.通過(guò) pop()方法來(lái)刪除并從列表中返回一個(gè)特定對(duì)象.

>>> lista=[1,2,3,4]
>>> del lista[-1]
>>> del lista[0]
>>> lista
[2, 3]
>>> print lista
>>> lista.remove(3)
>>> lista
[2]
>>> listb=["a","b","c","d"]
>>> listb.pop()               #pop刪除最后一個(gè)
"d"
>>> listb
["a", "b", "c"]

(5)增加:append、insert、extend

>>> lista
>>> lista.append("abc")
>>> lista.append([1,2,3])
>>> lista.extend([4,5,6])
>>> lista.insert(1,1000)
>>> lista

注:extend()方法的參數(shù)支持任何可迭代對(duì)象如下的文件:

>>>motd=[]
>>> motd.append("msg of the day")
>>> f=open(r"C:UsersAADesktop	est1.txt","r")
>>> motd.extend(f)
>>> motd
["msg of the day", "hello world
"]
>>> f.close()

(6)合并列表:

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

(7)列表的切片操作:

print str[0:3]    #截取第一位到第三位的字符 
print str[:]      #截取字符串的全部字符 
print str[6:]     #截取第七個(gè)字符到結(jié)尾 
print str[:-3]    #截取從頭開(kāi)始到倒數(shù)第三個(gè)字符之前
print str[2]     #截取第三個(gè)字符
print str[-1]    #截取倒數(shù)第一個(gè)字符
print str[::-1]   #創(chuàng)造一個(gè)與原字符串順序相反的字符串
print str[-3:-1]  #截取倒數(shù)第三位與倒數(shù)第一位之前的字符 
print str[-3:]    #截取倒數(shù)第三位到結(jié)尾 
print str[:-5:-3]  #逆序截取

詳解:列表的下標(biāo)有三個(gè)參數(shù):beg(起始下標(biāo)),end(終止下標(biāo)),delta(變化量)
當(dāng)delta小于0時(shí),beg默認(rèn)為len(array)-1,end默認(rèn)為開(kāi)頭之前。
當(dāng)delta大于0時(shí),beg默認(rèn)為0,end默認(rèn)為最末之后。
當(dāng)delta未給出時(shí):delta默認(rèn)為1

注:列表切片產(chǎn)生的是列表的副本,與原列表不是同一份空間。切片生成的子序列元素是源版的拷貝。因此切片是一種淺拷貝。

>>> x=[1,2,3]
>>> y=x[:]
>>> x[0]=-1
>>> y
[1, 2, 3]

切片的寫(xiě)操作:

>>> x=[1,2,3,4,5]
>>> x[2:0]=[990]
>>> x
[1, 2, 990, 3, 4, 5]
>>> del x[2:3]
>>> x
[1, 2, 3, 4, 5]
>>> del x[3:2]     #如果from>> x
[1, 2, 3, 4, 5]

(三)列表的運(yùn)算符:len(list)、+、*、in 、遍歷

>>>a=[1,2,3]
>>>len(a)
3
>>>[1,2,3]+[4,5,6]
[1, 2, 3, 3, 4, 5]
>>>["a"]*3
["a", "a", "a"]
>>>3 in a
True
>>>
>>> for i in [1,2,3]:print i
...
1
2
3

(四)列表的函數(shù)與方法
(1)列表統(tǒng)計(jì)

>>>[2,4,5,4,4,4,4].count(4)
5

(2)列表index(value,start,end) start end為閉開(kāi)區(qū)間

a=[2,3,4,"b"]
a.index("b")
a.index("b",2)
a.index("b",4)
a.index("b",1,5)

解釋?zhuān)篴.index(‘b’,1,5)
從a中查找元素b的位置,從索引1位置開(kāi)始包括1,到索引位置5但不包括位置5
注:index()來(lái)檢查一個(gè)元素是否存在于一個(gè)list中并不是個(gè)好主意,因?yàn)椴淮嬖诰蜁?huì)出錯(cuò)。應(yīng)該先用 in 成員關(guān)系操作符(或者是 not in)檢查一下,然后在用 index()找到這個(gè)元素的位置。
代碼(可以避免index報(bào)錯(cuò)):

>>> for i in ["compact disc", 45, "8-track tape"]:
...     if i in music_media:
...         print music_media.index(i)
0
1
2

(3)列表pop刪除-pop(index),index不寫(xiě)默認(rèn)為最后一個(gè)元素的索引,可以寫(xiě)索引

>>>?a=range(10)
>>>?a
[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]
>>>?print?a.pop()
9
>>>?a
[0,?1,?2,?3,?4,?5,?6,?7,?8]
>>>?print?a.pop(0)
0
>>>?a
[1,?2,?3,?4,?5,?6,?7,?8]

(4)Cmp:列表比較,相等返回0,大于返回1,小于返回-1

>>>?a=[1,2]
>>>?b=[1,2,3]
>>>?cmp(a,b)
-1
>>>?a=[]
>>>?b=[]
>>>?cmp(a,b)
0 

(5)列表reverse()-列表反向輸出并不會(huì)排序

>>> a=[3,4,5,6,7,8,9]
>>> a.reverse()
>>> a
[9, 8, 7, 6, 5, 4, 3]

(6)列表sort()-列表排序

>>> a=[3,4,5,6,7,8,9]
>>> a.sort()
>>> a
[3, 4, 5, 6, 7, 8, 9]

Sorted:

>>>?a=[1,-1,-2,4,-3,3]
>>>?b=sorted(a)
>>>?print?b
[-3,?-2,?-1,?1,?3,?4]
>>>?print?a
[1,?-1,?-2,?4,?-3,?3] 

注:那些可以改變對(duì)象值的可變對(duì)象的方法是沒(méi)有返回值的!
在使用可變對(duì)象的方法如 sort(),extend()和 reverse()的時(shí)候要注意,這些操作會(huì)在列表中原地執(zhí)行操作,也就是說(shuō)現(xiàn)有的列表內(nèi)容會(huì)被改變,但是沒(méi)有返回值!是的,與之相反,字符串方法確實(shí)有返回值:

4、綜合列表的推導(dǎo)(列表推導(dǎo))
[expr for iter_var in iterable]
這個(gè)語(yǔ)句的核心是 for 循環(huán), 它迭代 iterable 對(duì)象的所有條目. 前邊的 expr 應(yīng)用于序列的每個(gè)成員, 最后的結(jié)果值是該表達(dá)式產(chǎn)生的列表. 迭代變量并不需要是表達(dá)式的一部分.
[expr for iter_var in iterable if cond_expr]
(1)先執(zhí)行for后if,然后執(zhí)行的結(jié)果放到list中
(2)如果是兩個(gè)for,則先執(zhí)行左邊的for,在執(zhí)行右邊的for,執(zhí)行的結(jié)果放到List中

>>>?[x?for?x?in?range(1,10,2)]
[1,?3,?5,?7,?9]

>>>?[x**2?for?x?in?range(1,10,2)]
[1,?9,?25,?49,?81] 

>>>?[i?for?i?in?range(20)?if?i%2==0]
[0,?2,?4,?6,?8,?10,?12,?14,?16,?18] 

d?=?{"x":?"A",?"y":?"B",?"z":?"C"?}
print?[k?+?"="?+?v?for?k,?v?in?d.iteritems()] 

例子1:矩陣轉(zhuǎn)置:

a=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
print?[?[j[i]?for?j?in?a]?for?i?in?range(3)] 

以下為例子進(jìn)行分析:
a=[[1,2],[4,5]]
print?[?[j[i]?for?j?in?a]?for?i?in?range(2)]
分析:
for?i?in?range(2)--->i:0?--->第一次循環(huán)
???for?j?in?a:---第一次:[1,2]
????????1,2--->[1]????
??????for?j?in?a:---第2次:[4,5]
????????4,5--->[1,4]??

for?i?in?range(2)--->i:1?--->第二次循環(huán)
???for?j?in?a:---第一次:[1,2]
????????1,2--->[2]????
??????for?j?in?a:---第2次:[4,5]
????????4,5--->[2,5]
[[1,4]?,[2,5]]?

例子2:刪除列表的3,6,9,12

a=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
print?[?[i[j]?for?j?in?[1,2]]for?i?in?a] 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40898.html

相關(guān)文章

  • Python全棧路系列列表數(shù)據(jù)類(lèi)型

    摘要:列表同字符串一樣都是有序的,因?yàn)樗麄兌伎梢酝ㄟ^(guò)切片和索引進(jìn)行數(shù)據(jù)訪問(wèn),且列表的的是可變的。 列表(list)同字符串一樣都是有序的,因?yàn)樗麄兌伎梢酝ㄟ^(guò)切片和索引進(jìn)行數(shù)據(jù)訪問(wèn),且列表的的是可變的。 創(chuàng)建列表的幾種方法 第一種 name_list = [Python, PHP, JAVA] 第二種 name_list = list([Python, PHP, JAVA]) 創(chuàng)建一個(gè)空列表 ...

    ?。琛?/span> 評(píng)論0 收藏0
  • Python基礎(chǔ)(三)字典

    摘要:這種數(shù)據(jù)結(jié)構(gòu)包含以下幾種常見(jiàn)的操作向關(guān)聯(lián)數(shù)組添加鍵值對(duì)從關(guān)聯(lián)數(shù)組內(nèi)刪除鍵值對(duì)修改關(guān)聯(lián)數(shù)組內(nèi)的鍵值對(duì)根據(jù)已知的鍵尋找值字典問(wèn)題是設(shè)計(jì)一種能夠具備關(guān)聯(lián)數(shù)組特性的數(shù)據(jù)結(jié)構(gòu)。 定義 Python中有一個(gè)叫作dictionary的對(duì)象類(lèi)型,翻譯過(guò)來(lái)就是字典,用dict表示。 創(chuàng)建字典 創(chuàng)建空的字典 >>> mydict = {} >>> mydict {} >>> type(mydict) >...

    snifes 評(píng)論0 收藏0
  • 一文帶你斬殺PythonNumpy??Pandas全部操作【全網(wǎng)最詳細(xì)】???

    目錄Numpy簡(jiǎn)介Numpy操作集合1、不同維度數(shù)據(jù)的表示1.1 一維數(shù)據(jù)的表示1.2 二維數(shù)據(jù)的表示1.3 三維數(shù)據(jù)的表示2、 為什么要使用Numpy2.1、Numpy的ndarray具有廣播功能2.2 Numpy數(shù)組的性能比Python原生數(shù)據(jù)類(lèi)型高3 ndarray的屬性和基本操作3.1 ndarray的基本屬性3.2 ndarray元素類(lèi)型3.3 創(chuàng)建ndarray的方式3.4 ndarr...

    asoren 評(píng)論0 收藏0
  • Python基礎(chǔ)控制結(jié)構(gòu)

    摘要:基礎(chǔ)之控制結(jié)構(gòu)學(xué)習(xí)目標(biāo)代碼塊與縮進(jìn)條件語(yǔ)句語(yǔ)句語(yǔ)句的嵌套斷言循環(huán)循環(huán)循環(huán)中斷循環(huán)控制語(yǔ)句綜合嵌套列表解析式基礎(chǔ)相關(guān)鏈接學(xué)習(xí)目標(biāo)是簡(jiǎn)潔易學(xué)面向?qū)ο蟮木幊陶Z(yǔ)言。 Py...

    liaosilzu2007 評(píng)論0 收藏0
  • Python全棧路系列元組數(shù)據(jù)類(lèi)型

    摘要:元組和列表的為唯一區(qū)別就是列表可以更改,元組不可以更改,其他功能與列表一樣創(chuàng)建元組的兩種方法第一種第二種如果元祖內(nèi)只有一個(gè)元素,那么需要加上一個(gè)逗號(hào),否則就變成字符串了。 元組(tuple)和列表的為唯一區(qū)別就是列表可以更改,元組不可以更改,其他功能與列表一樣 創(chuàng)建元組的兩種方法 第一種 ages = (11, 22, 33, 44, 55) 第二種 ages = tuple((11,...

    李濤 評(píng)論0 收藏0
  • 真假美猴王-Numpy數(shù)據(jù)Python數(shù)組的區(qū)別與聯(lián)系

    摘要:下文統(tǒng)一稱(chēng)為數(shù)組是存儲(chǔ)單一數(shù)據(jù)類(lèi)型的多維數(shù)組同語(yǔ)言數(shù)組直接保存數(shù)值而則是能夠?qū)?shù)組進(jìn)行處理的函數(shù)。動(dòng)態(tài)數(shù)據(jù)類(lèi)型與的數(shù)組和的這些不可變數(shù)據(jù)類(lèi)型的適用場(chǎng)景等可變數(shù)據(jù)類(lèi)型適用于需要不斷對(duì)原始數(shù)據(jù)進(jìn)行修改的場(chǎng)景。 showImg(https://segmentfault.com/img/remote/1460000018925396);Numpy,是python中的一個(gè)矩陣計(jì)算包,功能類(lèi)似ma...

    鄒強(qiáng) 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<