python元組、列表的異同總結

九茶發表於2015-06-25

定義的異同:

列表(list):[]
\color{blue}{[ ]}

list是一種有序的集合,可以隨時新增和刪除其中的元素,用 [] 表示。
列表的三個特性:①建立之後也可以加減修改元素; ②元素可以是數字、字元、變數等,也可以混雜; ③列表可以巢狀。
例如:

>>>f=3
>>>list_example = [1, 'dog', f, ['monkey', 'duck']]
>>>list_example
[1, 'dog', 3, ['monkey', 'duck']]

元組(tuple): ()
\color{blue}{( )}

tuple也是有序的集合,它和list不同的是它只能在初始化的時候賦值,之後就不能再進行新增刪除元素了,用 () 表示。
元組的三個特性:①建立之後不能加減修改元素; ②元素也可以是數字、字元、變數或者混雜; ③元組也可以巢狀。
例如:

>>>f=3
>>>tuple_example = (1, 'dog', f, ('monkey', 'duck'))
>>>tuple_example
(1, 'dog', 3, ('monkey', 'duck'))

綜上可以看出,tuple和list的不同主要在於: tuple在初始化之後不能再修改,但是list可以


各種相同:

兩者除了在初始化後能否再變化這個問題上不相同外,其他方面幾乎都是相同的。
初始化:
list_example = [1, 2, [3, 4], 5, 6]
tuple_example = (7, 8, (9, 10), 11, 12)

用法上的相同點:

1、如果只有一個元素,要在後面加個’,’,否則只相當於定義了一個變數:

>>>list_example = [1]
1
>>>list_example = [1,]
[1]
>>>tuple_example = (1,)
(1,)

2、利用索引輸出元素(注意索引從0開始):

>>>list_example[0]
1
>>>tuple_example[2][0]
9

3、索引為負數,表示從尾往前搜尋(-1表示最後一個元素):

>>>list_example[-1]
6
>>>tuple_example[-3][-1]
10

4、tuple和list可以相互巢狀:

>>>list_example = [1,(2,3)]
[1,(2,3)]
>>>tuple_example = (4,[5,6])
>(4,[5,6])

方法上的相同點:

1、count(elem)

\color{aqua}{count(elem)}
:返回元素中elem的個數

>>>tuple_example = (7, 8, (7, 10), 7, 12)
>>>tuple_example.count(7)
2

2、index(elem)

\color{aqua}{index(elem)}
:返回元素elem的索引

>>>list_example = [7, 8, (7, 10), 8, 12]
>>>list_example.index(8)
1


各種不同:

因為tuple不能修改刪除,而已list可以,所以有些方法是list才有的。
初始化:
list_example = [1, 2, [3, 4], 5, 6]

1、append(object)

\color{aqua}{append(object)}
:在末尾新增元素:

>>>list_example.append(100)
[1, 2, [3, 4], 5, 6, 100]
>>>list_example.append([100, 200])
[1, 2, [3, 4], 5, 6, 100, [100, 200]]

2、extend(object)

\color{aqua}{extend(object)}
:在末尾新增元素,但object必須是列表,object的元素將會新增到列表的末尾:

>>>list_example.append([100, 200])
[1, 2, [3, 4], 5, 6, 100, 200]

3、insert(index,object)

\color{aqua}{insert(index,object)}
:將元素object新增到索引為index的位置:

>>>list_example.insert(1, 'abc')
[1, 'abc', 2, [3, 4], 5, 6]

4、pop(index)

\color{aqua}{pop(index)}
:將索引為index的元素彈出列表:

>>>list_example.pop(1)
2
>>>list_example
[1, [3, 4], 5, 6]

5、remove(value)

\color{aqua}{remove(value)}
:刪除元素value(只刪除第一個出現的)

>>>list_example = [1, 2, 5, [3, 4], 5, 6]
>>>list_example.remove(5)
>>>list_example
[1, 2, [3, 4], 5, 6]

6、sort(cmp=None,key=None,reverse=False)

\color{aqua}{sort(cmp=None, key=None, reverse=False)}
:對元素排序。
預設是從小到大,不同型別的元素按數字—>列表—>字元—>元組先後排序。

>>>list_example = [1, 'cd', ('b', 'f'), 8, 'ab', [4, 3], (1, 2), [2,9], 5, 6]
>>>list_example.sort(cmp=None, key=None, reverse=False)
>>>list_example
[1, 5, 6, 8, [2, 9], [4, 3], 'ab', 'cd', (1, 2), ('b', 'f')]



總之,tuple和list功能上是很相近的,只是tuple在初始化後就不能更改了,這也說明tuple具有更高的安全性,防止資料被誤修改。對於無需修改的資料,類似於“只讀”性質的資料,最好選用tuple。


轉載請註明出處,謝謝!(原文連結:http://blog.csdn.net/bone_ace/article/details/46633029

相關文章