列表是有序的,可變序列python
1,列表是包含若干個元素的有序連續內存空間,當列表增長或刪除元素時,列表對象自動進行內存的擴展或收縮,從而保證相鄰元素之間沒有縫隙。但插入和刪除非尾部元素時會改變該位置後面的元素在列表中的索引,這對於某些操做可能會致使意外的錯誤結果。所以,除非確實有必要,不然應儘可能從列表的尾部進行元素的追加與刪除。app
2,同一個列表中元素的數據類型能夠各部相同,能夠包含整數,浮點數,字符串,列表,元組,字典,集合,函數等。python採用基於值的自動內存管理模式,變量並不直接存儲值,而是存儲值的引用或內存地址,這也是python中變量能夠隨時改變類型的重要緣由。函數
3,索引和切片,算頭不算尾。spa
4,列表對象經常使用的方法code
append(),extend(),insert()對象
In [26]: list((1,2,3,)) Out[26]: [1, 2, 3] In [27]: list(range(9,1,-1)) Out[27]: [9, 8, 7, 6, 5, 4, 3, 2] In [28]: list('apple') Out[28]: ['a', 'p', 'p', 'l', 'e'] In [29]: list({'apple':"$12.00",'orange':'$13.14'}) Out[29]: ['apple', 'orange'] In [30]: list({'apple':"$12.00",'orange':'$13.14'}.items()) Out[30]: [('apple', '$12.00'), ('orange', '$13.14')]
In [31]: x=[123] 列表的內存地址不變 append()尾部追加一個元素,extend()尾部追加另外一個列表中的元素,insert()在列表任意位置插入一個元素。blog
In [32]: id(x)排序
Out[32]: 1329149867720索引
In [33]: x.append(4)內存
In [34]: id(x)
Out[34]: 1329149867720
In [35]: x.extend([567])
In [37]: id(x)
Out[37]: 1329149867720
In [38]: print(x)
[123, 4, 567]
In [39]: x.insert(1,'zzz')
In [40]: id(x)
Out[40]: 1329149867720
In [41]: print(x)
[123, 'zzz', 4, 567]
In [42]: x=[1,2,3,4,5,6] In [43]: x.pop() 默認彈出最後一個元素,返回最後一個元素 Out[43]: 6 In [44]: print(x) 新列表刪出了6 [1, 2, 3, 4, 5] In [45]: x.pop(2) 指定位置 Out[45]: 3 In [46]: print(x) [1, 2, 4, 5]
上面是pop()的刪除,下面是remove()的刪除,clear()的刪除
In [50]: x=[1,1,2,3,4,4,5] In [52]: x.remove(4) In [53]: print(x) 只刪除第一個值與指定值相等的元素 [1, 1, 2, 3, 4, 5]
In [54]: x.clear() 清空爲一個空列表
In [55]: print(x)
[]
count()計數,index()查看索引
sort()函數和reverse()函數
列表對象的sort()和reverse()分別對列表進行原地排序和逆序,沒有返回值。所謂‘原地’,意思是用處理後的數據替換原來的數據,列表首地址不變,列表中元素原來的順序所有丟失。
用內置函數sorted()返回排序後的新列表。 reversed(),返回一個逆序後的reversed對象。
In [77]: x=[1,3,5,7,9,6,4,2] In [78]: x.sort() In [79]: print(x) [1, 2, 3, 4, 5, 6, 7, 9] In [80]: x.sort(reverse=True) In [81]: print(x) [9, 7, 6, 5, 4, 3, 2, 1] In [85]: x.reverse() 原來列表元素的位置被改變了, In [86]: print(x) [1, 2, 3, 4, 5, 6, 7, 9] In [87]: x=[1,3,5,7,9,6,4,2] In [88]: x.reverse() In [89]: print(x) 位置逆序 [2, 4, 6, 9, 7, 5, 3, 1]