列表是python中的基礎數據類型之一,其餘語言中也有相似於列表的數據類型,好比js中叫數組,他是以[]括起來,每一個元素以逗號隔開,並且他裏面能夠存放各類數據類型好比:python
li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]windows
列表相比於字符串,不只能夠儲存不一樣的數據類型,並且能夠儲存大量數據,32位python的限制是 536870912 個元素,64位python的限制是 1152921504606846975 個元素。並且列表是有序的,有索引值,可切片,方便取值。數組
# li = [123, '老男孩', True, [1, 2, 3], {'name': 'alex'}, (1, 2, 3)]
# 列表稱之爲容器型數據類型。
# l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
# 按照索引取值
# print(l1[0])
# print(l1[1], type(l1[1]))
# 按照切片取值,可取步長 顧頭不顧尾
# print(l1[:3])
# print(l1[2:])
# print(l1[::2])
增刪改查:
增:
li = [1,'a','b',2,3,'a']
# li.insert(0,55) (索引,元素) #按照索引去增長,插入
# print(li) [55, 1, 'a', 'b', 2, 3, 'a']
# li.append('aaa') #增長到最後,追加 [1,'a','b',2,3,'a','aaa'] # li.append([1,2,3]) #增長到最後,追加 [1,'a','b',2,3,'a','aaa',[1,2,3]] # print(li)
# li.extend(['q,a,w']) #迭代的去追加 [1, 'a', 'b', 2, 3, 'a', 'q', ',', 'a', ',', 'w'] # li.extend(['q,a,w','aaa']) [1, 'a', 'b', 2, 3, 'a', 'q,a,w', 'aaa'] # li.extend('a') # li.extend('abc') # li.extend('a,b,c') # print(li) 列表是可迭代對象
字符串轉化爲列表:
li = []
li.extend('abc')
print(li) ['a', 'b', 'c']
刪:
li = [1,'a','b',2,3,'c']
# l1 = li.pop(1) #按照位置去刪除,有返回值 # print(l1) 'a'
# l1 = li.pop() #默認刪除最後一位,有返回值
# print(l1) 'c' # li.remove('a') #按照元素去刪除,若是有相同元素,只刪除第一個 # print(li) [1,'b',2,3,'c'] # li.clear() #清空列表
# print(li) [] 空列表
del:
1,在內存級別刪除列表
del l1
print(l1) name 'l1' is not defined
2,按照索引刪除。
del l1[2]
print(l1) [1, 'a', 2, 3, 'c']
3,切片刪除,可加步長。
del l1[:-1]
print(l1) ['c']
改:
# li = ["windows", "Ubuntu", "CenOS", "Red Hat"]
# li[1] = "MacOS" #按照索引修改
# print(li) ['windows', 'MacOS', 'CenOS', 'Red Hat']
# li[0:2] = "MacOS" #按照切片修改 刪除舊的,添加新的(迭代添加)
# print(li) ['M', 'a', 'c', 'O', 'S', 'CenOS', 'Red Hat']
# li[::1] = ["周杰倫","周潤發","麻花藤"] #切片,可加步長 步長爲1,等於列表從新賦值
# print(li) ['周杰倫', '周潤發', '麻花藤']
# li[::2] = ["周杰倫","周潤發","麻花藤"] 若是步長不是1,元素個數必需要匹配,否則會報錯
# print(li) attempt to assign sequence of size 3 to extended slice of size 2
# li[::2] = ["周杰倫","周潤發"]
# print(li) ['周杰倫', 'Ubuntu', '周潤發', 'Red Hat']
查:
# 索引、切片、for循環
經常使用操做:
#len 列表長度或列表裏面有多少個元素
# print(len(l1))
#count 某元素在列表裏出現的次數
# print(l1.count('taibai'))
#index 經過元素找索引
# print(l1.index('alex'))
# l2 = [1, 3, 5, 9, 7, 6, 2, 4]
#sort 從小到大,正序排序
# l2.sort()
# print(l2) [1, 2, 3, 4, 5, 6, 7, 9]
li = ["1", "5","112","11","111","21"] # 字符串排序,按照位數排
# li.sort()
# print(li) ['1', '11', '111', '112', '21', '5']
#sort 從大到小,倒序排序
# l2.sort(reverse=True)
# print(l2) [9, 7, 6, 5, 4, 3, 2, 1]
#翻轉 reverse
# l2.reverse()
# print(l2) [4, 2, 6, 7, 9, 5, 3, 1]
元組
# 只讀列表,不能增刪改 只能查詢
# tu = (11, 22, 33, 44, 55)
# 基本操做: 索引,切片,步長,for循環,index,len, count
# print(tu[0])
# print(tu[:3:2])
# for i in tu:
# print(i)
# index len count
# 能夠del
del tu 內存級別刪除
print(tu) name 'tu' is not defined
# tu = ("哈哈", ) # 若是隻有一個元素. 必須加一個逗號
# print(tu,type(tu)) ('哈哈',) <class 'tuple'>
# tu = ("哈哈" )
# print(tu,type(tu)) ('哈哈') <class 'str'>
range:
range(start,end,step) 顧頭不顧尾,可切片,可加步長
for i in range(100) 0到99
for i in range(0,100) 0到99
for i in range(0,100,2) 0到98的偶數
列表的枚舉:
enumerate:枚舉,對於一個可迭代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個索引序列,利用它能夠同時得到索引和值。app
li = ['alex','銀角','女神','egon','太白'] for i in enumerate(li): print(i)
執行結果: 元祖類型
(0, 'alex')
(1, '銀角')
(2, '女神')
(3, 'egon')
(4, '太白')spa
for index,name in enumerate(li,1): print(index,name)
執行結果: 解構 能夠設定索引的起始位置
1 alex
2 銀角
3 女神
4 egon
5 太白code
for index, name in enumerate(li): # 起始位置默認是0,可更改 print(index, name)
執行結果: 解構
0 alex
1 銀角
2 女神
3 egon
4 太白對象