python中的列表操作
列表:(list)
容器型別:某個物件包含對其它物件的引用,則將其稱為容器。
列表可以包含任何種類的物件(數字、字串、甚至巢狀其他列表,可以巢狀元組)
內部包含:任意物件的有序集合,透過索引訪問其中的元素,可變物件,支援異構(包含多種不同的元素),任意巢狀
支援在原處修改: 列表的可變表現為:其內部的每一個元素,儲存在列表中不是物件本身,而是物件的引用,其修改其實是修改的引用,而不是真正的修改了內部的某個物件。 使用[]建立列表
>> list1 = ["This","is","a","pig"]
>> print list1[0]
This
>> print list1[0][0]
T
列表和元組並不真正儲存資料而是存放的物件引用!
解釋:
["this","is","a","pig"]
這裡並不是存放了"this",而是在記憶體中找個了地方存放的"this",只是把"this"的儲存的位置存放在這個列表當中。
---列表的異構:
In [2]: list = [1,'b']
In [3]: print list
[1, 'b']
---巢狀的列表:
In [6]: list2 = [[1,2],['a','b']]
In [7]: print list2
[[1, 2], ['a', 'b']]
---列表的修改
In [11]: list2 = [1,2,3,4,5]
In [12]: print list2
[1, 2, 3, 4, 5]
In [13]: list2[1] = 888
In [14]: print list2
[1, 888, 3, 4, 5]
---刪除指定的元素
In [15]: list2
Out[15]: [1, 888, 3, 4, 5]
In [16]: del(list2[1:])
In [17]: print list2
[1]
---新增一個元素(append方法) 在最後指定附件元素
In [19]: list2 = [1,2,3,4]
In [20]: print list2
[1, 2, 3, 4]
In [21]: list2.append(5)
In [22]: print list2
[1, 2, 3, 4, 5]
能不能附加多個元素?附加一個列表進來
In [30]: print list2
[1, 2, 3, 4, 5]
In [31]: list3 = ['x','y','z']
In [32]: list2.append(list3)
In [33]: print list2
[1, 2, 3, 4, 5, ['x', 'y', 'z']]
注意:這裡是把這個列表當作一個元素附加進來的。
---extend 方法
extend list by appending elements from the iterable
透過附加迭代元素來擴充套件列表
In [37]: list1 = [1,2,3,4]
In [38]: list2 = ['x','y','z']
In [39]: list1.extend(list2)
In [40]: print list1
[1, 2, 3, 4, 'x', 'y', 'z']
是把兩個列表合併在一起了
---index方法(返回字元,第一次出現的索引編號)
In [45]: list1 = [1,2,1,3,3,2]
In [46]: list1.index(2)
Out[46]: 1
--- insert 方法(在指定的元素前面新增元素)
In [49]: list = [1,2,3,4,5]
In [50]: list.insert(2,'xyz')
In [51]: print list
[1, 2, 'xyz', 3, 4, 5]
---pop方法(彈出列表中的元素,預設是最後一個元素,按照索引刪除,而remove是按照值刪除的)
In [57]: list
Out[57]: [1, 2, 'xyz', 3, 4]
In [58]: list.pop()
Out[58]: 4
In [59]: list.pop()
Out[59]: 3
In [60]: list
Out[60]: [1, 2, 'xyz']
----remove 方法 (刪除列表中指定的元素,安裝值來刪除)
In [62]: list = [1,2,3,4,5]
In [63]: list.remove(3)
In [64]: print list
[1, 2, 4, 5]
* 列表相加會有什麼效果呢? ***
list1 + list2:合併兩個列表,生產一個新列表,原列表不會改變
list1 * N :重複list1 N次,生產新列表
>> list1 = [1,2,3]
>> list2 = ['x','y','z']
>> list1 + list2
[1, 2, 3, 'x', 'y', 'z'] ----> 返回了新的列表
>> print list1
[1, 2, 3]
>> print list2
['x', 'y', 'z']>> list1
[1, 2, 3]
>> list1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
in 運算子:成員關係判斷符
判斷一個元素,是不是在一個列表當中,在返回true,否則返回false 用法:item in container
not in 也類似
>> list1
[1, 2, 3]
>> 2 in list1
True
>> 'x' in list1
False
在切片級別的修改替換的是元素
>> list1
[1, 2, 3]
>> list1[1:]
[2, 3]
>> list1[1:] = ['x','y','z']
>> list1
[1, 'x', 'y', 'z']
***** 列表的複製 ****
(1)輕度copy
>> list1 = [1,2,3]
>> list2 = list1
>> list1.append(4)
>> print list1
[1, 2, 3, 4]
>> print list2
[1, 2, 3, 4]
為什麼會出現這種情況?
因為它們指向了同一個記憶體物件,不是真正執行了複製
>> id(list1)
140325613007360
>> id(list2)
140325613007360
>>
(2) 使用list[:] 方式複製列表
>> list1 = [1,2,3,4]
>> list3 = list1[:]
>> print list3
[1, 2, 3, 4]
>> list1.append(5)
>> print list1
[1, 2, 3, 4, 5]
>> print list3
[1, 2, 3, 4]
>> id(list1)
140325612904744
>> id(list3)
140325613007648
(3)透過內建庫copy複製列表
import copy
copy.deepcopy
Deep copy operation on arbitrary Python objects.
對任意Python物件進行深度複製操作。
>> list1
[1, 2, 3, 4, 5]
>> import copy
>> list1
[1, 2, 3, 4, 5]
>> id(list1)
140325612904744
>> list2 = copy.deepcopy(list1)
>> print list2
[1, 2, 3, 4, 5]
>> id(list2)
140325613030936
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3705/viewspace-2802639/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 知識點:Python中的列表合併操作Python
- Python列表切片操作Python
- Python 列表操作指南1Python
- Python 列表操作指南3Python
- Python列表操作方法Python
- Python基礎-列表操作(2):列表的遍歷和數字列表Python
- python基礎(三)——操作列表Python
- Python中列表的方法Python
- Python元組、列表、集合及列表去重操作Python
- python 複製以及更改列表操作Python
- Python中的列表詳解Python
- python列表(list)的使用技巧及高階操作Python
- Python學習之路3-操作列表Python
- Python基礎——while、字串、列表及操作PythonWhile字串
- python 多元列表操作兩大誤區Python
- python中列表相加Python
- python資料型別-列表建立和操作Python資料型別
- Python中列表的深淺拷貝Python
- Python中列表和字串的反轉Python字串
- Python中字典的操作Python
- 列表和字典的操作
- Python中基於匹配項的子列表列表串聯Python
- python的列表[]Python
- Python 列表、元組、字典及集合操作詳解Python
- Python 列表 list 陣列 array 常用操作集錦Python陣列
- 【編測編學】零基礎學python_09_列表(操作列表之遍歷列表)Python
- Python學習中最常見的10個列表操作問題Python
- Python刪除列表中的非字母字元Python字元
- 『無為則無心』Python序列 — 19、Python列表的其他操作(切片和遍歷)Python
- Python3之字串str、列表list、元組tuple的切片操作Python字串
- 玩轉python字典與列表(中)Python
- python中列表如何去除重複Python
- python中列表、字典和字串的互相轉換Python字串
- Python列表中set函式的使用方法!Python函式
- Python中列表去重常用的3種方法!Python
- Python 中刪除列表元素的三種方法Python
- 列表巢狀操作巢狀
- 『無為則無心』Python序列 — 18、Python列表概念及常用操作APIPythonAPI