您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Python中l(wèi)ist和set的區(qū)別是什么的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
list:
字面意思就是一個(gè)集合,在Python中List中的元素用中括號(hào)[]來(lái)表示,可以這樣定義一個(gè)List:
L = [12, 'China', 19.998]
可以看到并不要求元素的類(lèi)型都是一樣的。當(dāng)然也可以定義一個(gè)空的List:
L = []
Python中的List是有序的,所以要訪(fǎng)問(wèn)List的話(huà)顯然要通過(guò)序號(hào)來(lái)訪(fǎng)問(wèn),就像是數(shù)組的下標(biāo)一樣,一樣是下標(biāo)從0開(kāi)始:
>>> print L[0]12
千萬(wàn)不要越界,否則會(huì)報(bào)錯(cuò)
>>> print L[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
List也可以倒序訪(fǎng)問(wèn),通過(guò)“倒數(shù)第x個(gè)”這樣的下標(biāo)來(lái)表示序號(hào),比如-1這個(gè)下標(biāo)就表示倒數(shù)第一個(gè)元素:
>>> L = [12, 'China', 19.998] >>> print L[-1]19.998
-4的話(huà)顯然就越界了,如下:
>>> print L[-4] Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> print L[-4] IndexError: list index out of range >>>
List通過(guò)內(nèi)置的append()方法來(lái)添加到尾部,通過(guò)insert()方法添加到指定位置(下標(biāo)從0開(kāi)始):
>>> L = [12, 'China', 19.998] >>> L.append('Jack') >>> print L [12, 'China', 19.998, 'Jack'] >>> L.insert(1, 3.14) >>> print L [12, 3.14, 'China', 19.998, 'Jack'] >>>
注意python中有幾個(gè)方法與append類(lèi)似,但是效果完全不一樣,使用時(shí)需根據(jù)實(shí)際需求選用正確方法
1、append() 向列表尾部追加一個(gè)新元素,列表只占一個(gè)索引位,在原有列表上增加
2、extend() 向列表尾部追加一個(gè)列表,將列表中的每個(gè)元素都追加進(jìn)來(lái),在原有列表上增加
比如 list1=[1, 2, 3] .list2=[4, 5, 6]
list1.append(list2) 的結(jié)果為[1, 2, 3, [4, 5, 6]]
list1.extend(list2) 的結(jié)果為[1, 2, 3, 4, 5, 6]
3、+ 直接用+號(hào)看上去與用extend()一樣的效果,但是實(shí)際上是生成了一個(gè)新的列表存這兩個(gè)列表的和,只能用在兩個(gè)列表相加上
4、+= 效果與extend()一樣,向原列表追加一個(gè)新元素,在原有列表上增加
通過(guò)pop()刪除最后尾部元素,也可以指定一參數(shù)刪除指定位置:
>>> L.pop() 'Jack' >>> print L [12, 3.14, 'China', 19.998] >>> L.pop(0) >>> print L [3.14, 'China', 19.998]
也可以通過(guò)下標(biāo)進(jìn)行復(fù)制替換
>>> L[1] = 'America' >>> print L [3.14, 'America', 19.998]
set:
set也是一組數(shù),無(wú)序,內(nèi)容又不能重復(fù),通過(guò)調(diào)用set()方法創(chuàng)建:
>>> s = set(['A', 'B', 'C'])
對(duì)于訪(fǎng)問(wèn)一個(gè)set的意義就僅僅在于查看某個(gè)元素是否在這個(gè)集合里面,注意大小寫(xiě)敏感:
>>> print 'A' in s True >>> print 'D' in s False
也通過(guò)for來(lái)遍歷:
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)]) for x in s: print x[0],':',x[1] >>> Lisa : 85 Adam : 95 Bart : 59
通過(guò)add和remove來(lái)添加、刪除元素(保持不重復(fù)),添加元素時(shí),用set的add()方法
>>> s = set([1, 2, 3]) >>> s.add(4) >>> print s set([1, 2, 3, 4])
如果添加的元素已經(jīng)存在于set中,add()不會(huì)報(bào)錯(cuò),但是不會(huì)加進(jìn)去了:
>>> s = set([1, 2, 3]) >>> s.add(3) >>> print s set([1, 2, 3])
刪除set中的元素時(shí),用set的remove()方法:
>>> s = set([1, 2, 3, 4]) >>> s.remove(4) >>> print s set([1, 2, 3])
如果刪除的元素不存在set中,remove()會(huì)報(bào)錯(cuò):
>>> s = set([1, 2, 3]) >>> s.remove(4) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 4
所以如果我們要判斷一個(gè)元素是否在一些不同的條件內(nèi)符合,用set是最好的選擇,下面例子:
months = set(['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec',]) x1 = 'Feb' x2 = 'Sun' if x1 in months: print 'x1: ok' else: print 'x1: error' if x2 in months: print 'x2: ok' else: print 'x2: error' >>> x1: ok x2: error
另外,set的計(jì)算效率比list高。
感謝各位的閱讀!關(guān)于Python中l(wèi)ist和set的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。