Python的元組和列表
1、list
列表是Python內建的一種資料,list是一種有序的集合,可隨時新增或者刪除其中的元素。
舉例:
列出一個班級所有同學的姓名,便可以使用一個列表表示:
>>> classmates = ['zhangsan','lisi','wanger']
>>> classmates
['zhangsan','lisi','wanger']
此時的變數classmates便是一個list,用len()函式可以獲取list元素的個數
>>>len(classmates)
3
通過索引來訪問list中每一個位置的元素,索引是從0開始的
>>> classmates[0]
'zhangsan'
>>> classmates[1]
'lisi'
>>> classmates[2]
'wanger'
>>>
當索引超出範圍時,python報出IndexError的錯誤,因此要確保索引不要越界,記住最後一個元素的索引是len(classmates) -1.
如果要取得最後一個元素,除了計算索引位置外,還可以用-1直接取得最後一個元素
>>> classmates[-1]
'wanger'
以此類推:
>>> classmates[-1]
'wanger'
>>> classmates[-2]
'lisi'
>>> classmates[-3]
'zhangsan'
>>> classmates[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> #第四個越界咯,此乃報錯資訊。
追加元素的末尾:
list是一個可變的有序表,因此可以往list中追加元素的末尾
>>> classmates.append('mazi')
>>> classmates
['zhangsan', 'lisi', 'wanger', 'mazi']
>>>
也可以把元素插入到指定的位置,比如索引號為1的位置:
>>> classmates.insert(1,'ergouzi')
>>> classmates
['zhangsan', 'ergouzi', 'lisi', 'wanger', 'mazi']
>>> #為什麼二狗子在第二個呢?記住索引是從0開始的。
要刪除列表末尾的元素,用pop()方法:
>>> classmates
['zhangsan', 'ergouzi', 'lisi', 'wanger', 'mazi']
>>> classmates.pop()
'mazi'
>>> classmates
['zhangsan', 'ergouzi', 'lisi', 'wanger']
>>> #列表中最後一個的麻子被刪除了。
刪除指定位置的元素,用pop(i)方法,i是指索引位置:
>>> classmates
['zhangsan', 'ergouzi', 'lisi', 'wanger']
>>> classmates.pop(2)
'lisi'
>>> classmates
['zhangsan', 'ergouzi', 'wanger']
>>> #指定位置的lisi被刪除。
若要替換元素,直接給對應的索引位置賦值即可:
>>> classmates
['zhangsan', 'ergouzi', 'wanger']
>>> classmates[2] = "goudan"
>>> classmates
['zhangsan', 'ergouzi', 'goudan']
>>> #王二被替換成狗蛋。
list內的元素的資料型別可以是不同的,例如:
>>> B = ['book',234,True]
>>> B
['book', 234, True]
>>>
list中的元素可以是另一個list,例如:
>>> C = ['java','perl',['php','C'],'python']
>>> len(C)
4
>>>
C中只有4個元素,其中C(2)還是一個list,分解開更容易理解:
>>> d = ['php','C']
>>> C = ['java','perl',d,'python']
>>>
要拿到php可以寫d[1]或者C[2][1],可以看成一個二維陣列,類似還有三維和四維陣列
如果list中一個元素也沒有,則是一個空list,它的長度為0
元組(tuple)
另一種有序列表就是元組了。元組和列表類似,但是元組一旦初始化便不可再次修改,例如同樣列出一個班級同學們的名字:
>>> classmates = ('zhangsan','lisi','wanger')
>>> #注意[]變成()了
現在classmates這個元組是不能變了,它沒有append(),insert()這樣的方法,但獲取元素的方法和列表是一樣的,可以正常的使用classmates[0],classmates[-1],但不能賦值成另外的元素。
因元組不可變,因此程式碼更安全,如果可能,儘量使用tuple代替list。
注意:當定義一個tuple時,tuple元素必須被確定下來:
>>> n = (1,2)
>>> n
(1, 2)
>>>
定義一個空tuple,可以寫成():
>>>n = ()
只定義一個元素的tuple,要寫成:
>>>n = (1,)
>>>n
1,
>>> #為什麼要加一個逗號呢?因為定義的不是元組,二十1這個數!括號()這個東西,既可以表示元組,又可以表示數學公式的小括號,這便產生了歧義,因此在python中規定,這樣的情況按小括號進行計算,結果自然為1,所以,只有一個元素的元組定義時必須加上逗號,來消除歧義。python在顯示一個元素的時候,也會自動加上一個逗號,避免你誤會成數學計算意義上的括號。
“可變的”元組:
>>> p = ('a','b',['A','B'])
>>> p[2][0] = 'x'
>>> p[2][1] = 'y'
>>> p
('a', 'b', ['x', 'y'])
>>>
以上元組定義了三個元素,有‘a’,'b'和一個列表。那它是怎麼變的呢?下面上圖:
當修改列表中的元素後,元組變成了:
表面上元組的元素是變了,其實變的是列表的元素。
相關文章
- python元組和列表Python
- python list(列表)和tuple(元組)Python
- Python中的元組和列表的區別Python
- python列表元組的操作Python
- 總結python 元組和列表的區別Python
- python列表(list)和元組(tuple)詳解Python
- Python 列表和元組的區別是什麼?Python
- Python列表、元組、字典使用Python
- python中的列表和元組有什麼區別Python
- python_列表——元組——字典——集合Python
- Python 學習之元組列表Python
- python list列表基礎(元組)Python
- Python之列表&元組小練Python
- python基礎之元組,列表Python
- python內建資料型別:列表和元組Python資料型別
- Python元組、列表、集合及列表去重操作Python
- python如何返回元組,列表或字典的?Python
- python元組、列表的異同總結Python
- 013:列表和元組的應用
- 【美妙的Python之五】變數:列表、元組、元字典Python變數
- python學習筆記:第4天 列表和元組Python筆記
- python資料型別 列表+元組Python資料型別
- python 元組,列表 迴圈遍歷Python
- Python第六週列表與元組Python
- Python 元組,不可變的列表,滾雪球學 PythonPython
- python基礎之列表list元組tuplePython
- 資料型別· 第1篇《元組和列表的效能分析、命名元組》資料型別
- Python之列表與元組的區別詳解Python
- Python 選列表 list 還是元組 tuple 的思考Python
- 三、python的資料型別 列表、元組、字典Python資料型別
- python經典面試題:列表和元組有什麼異同?Python面試題
- Python 列表、元組、字典及集合操作詳解Python
- Python學習筆記8——列表、字典、元組Python筆記
- python自學第三天(-)-列表、元組、字典Python
- python基礎之序列型別的方法——列表&元組Python型別
- Python資料型別(數字,字串,[列表],(元組),{字典:字典值},{列表,列表2})Python資料型別字串
- 從零開始學Python:第十三課-列表和元組的應用Python
- python3 筆記13.列表元組的切片和支援的運算方法Python筆記