list:
字面上就是一個集合,在Python中List中的元素用中括號[]來表示,可以這樣定義一個List:
L = [12, 'China', 19.998]
可以看到並不要求元素的型別都是一樣的。當然也可以定義一個空的List:
L = []
Python中的List是有序的,所以要訪問List的話顯然要透過序號來訪問,就像是數組的下標一樣,一樣是下標從0開始:
>>> print L[0]12
千萬不要越界,否則會報錯
>>> print L[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
List也可以倒序訪問,透過「倒數第x個」這樣的下標來表示序號,例如-1這個下標就表示倒數第一個元素:
>>> L = [12, 'China', 19.998] >>> print L[-1]19.998
-4的話顯然就越界了,如下:
>>> 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透過內建的append()方法來加入尾部,透過insert ()方法加入指定位置(下標從0開始):
>>> 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中有幾個方法與append類似,但是效果完全不一樣,使用時需根據實際需求選用正確方法
1、append() 向列表尾部追加一個新元素,列表只佔一個索引位,在原有列表上增加
2、extend() 向列表尾部追加一個列表,將列表中的每個元素都追加進來,在原有清單上增加
例如list1=[1, 2, 3] .list2=[4, 5, 6]
list1.append(list2 ) 的結果為[1, 2, 3, [4, 5, 6]]
list1.extend(list2) 的結果為[1, 2, 3, 4, 5, 6]
3、 直接用號看上去與用extend()一樣的效果,但是實際上是產生了一個新的列表存這兩個列表的和,只能用在兩個列表相加上
4、 = 效果與extend()一樣,向原始列表追加一個新元素,在原有列表上增加
透過pop()刪除最後尾部元素,也可以指定一參數刪除指定位置:
>>> L.pop() 'Jack' >>> print L [12, 3.14, 'China', 19.998] >>> L.pop(0) >>> print L [3.14, 'China', 19.998]
也可以透過下標複製替換
>>> L[1] = 'America' >>> print L [3.14, 'America', 19.998]
set:
# set也是一組數,無序,內容又不能重複,透過呼叫set( )方法創建:
>>> s = set(['A', 'B', 'C'])
對於存取一個set的意義就僅僅在於查看某個元素是否在這個集合裡面,注意大小寫敏感:
>>> print 'A' in s True >>> print 'D' in s False
也透過for來遍歷:
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)]) for x in s: print x[0],':',x[1] >>> Lisa : 85 Adam : 95 Bart : 59
透過add和remove來新增、刪除元素(保持不重複),當新增元素時,用set的add()方法
>>> s = set([1, 2, 3]) >>> s.add(4) >>> print s set([1, 2, 3, 4])
如果新增的元素已經存在於set中,add( )不會報錯,但是不會加進去了:
>>> s = set([1, 2, 3]) >>> s.add(3) >>> print s set([1, 2, 3])
刪除set中的元素時,用set的remove()方法:
>>> s = set([1, 2, 3, 4]) >>> s.remove(4) >>> print s set([1, 2, 3])
如果刪除的元素不存在set中, remove()會報錯:
>>> s = set([1, 2, 3]) >>> s.remove(4) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 4
所以如果我們要判斷一個元素是否在一些不同的條件內符合,用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的計算效率比list高。
更多Python相關技術文章,請造訪Python教學欄位學習!
以上是Python中list和set的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!