有序,可變,支持索引python
lst = ['alex',123,True] # 用逗號分割的是一個元素 print(lst) # 結果是['alex',123,True] print(lst[0]) print(id(lst[0])) # id獲取對象的內存地址 lst[0] = "dsb" print(lst) # ['dsb', 123, True, '黑哥'] # s = "alex" # 字符串是不可變數據 # s = "wusir" # s[0] = "b" # print(s)
# lst.append("大煎餅") #追加(在列表的最後位置添加一個內容) # print(lst)
insert()之後儘可能不要使用(當數據量比較大的時候會影響效率)面試
# lst.insert(2,"wusir") #插入 之後儘可能不要使用(當數據量比較大的時候會影響效率) # print(lst)
# lst.extend("可迭代的內容") # 迭代添加 # print(lst)
# del lst[0] # 經過索引刪除 # print(lst) # del lst[0:3] # 經過切片刪除 # print(lst) # del lst[0:3:2] # 經過步長刪除 # print(lst)
# lst = ["dsb",123,"dsb",True,"黑哥"] # lst.remove("dsb") # 移除 -- 經過元素名字進行刪除 # print(lst)
pop(0):能夠指定索引刪除app
ret = lst.pop(0) :能夠返回被刪除的元素code
# lst.pop() # 彈 -- 默認刪除最後一個 # print(lst) # lst = ["dsb",123,True,"黑哥"] # lst.pop(2) # 經過指定索引進行刪除 # print(lst)
# lst.clear() #清空 # print(lst)
lst = ['楊紫','高圓圓','劉亦菲','關曉彤'] lst[0] = '楊冪' # 經過索引修改 print(lst) ***** lst[0:3] = '你好美11111111' # 被迭代進來的,數字和布爾值不行,主要是索引取得留下誰 :123456(不能運行) 1,2,3,4,5,6(可運行行) "123456"(可運行) print(lst) # ['你','好','美',’1',....,'1','關曉彤'] lst[0:4:2] = '好嗨哦' # 運行錯誤 lst[0:4:2] = '好嗨' #後面的內容數量必須與切片的數量相等 print(lst) # ['好','楊紫','嗨','劉亦菲']
# for 循環 # lst = ["dsb",123,"dsb",True,"黑哥"] # for i in lst: # print(i)
lst = ['你', '好', '啦', '啊'] lst.append('牛') print(lst) lst.insert(1, '牛一') print(lst) lst.extend('你好') print(lst) lst.pop(1) print(lst) lst.remove('牛') print(lst) lst1 = ['asd', 'dfg'] lst1.clear() print(lst1) lst[4] = '朱' print(lst) lst[0:4] = '12' print(lst) lst[0::2] = '36' print(lst) for i in lst: print(i)
經過索引進行取值對象
無論什麼類型進行切片的時候獲取到的都是原數據類型索引
# a = lst[-1][-1][-2] # print(a) # 無論什麼類型進行切片的時候獲取都到都是源數據類型 # lst = [1,"alex","春生","小東北","渣弟", # ["大黑哥",["常鑫",["自行車"],"大煎餅","掉井蓋","三金"], # "馮強","海峯",["太白金星","女神","吳超",["肖鋒"]]]] # print(lst[-1][1][1][0])
元組——tuple內存
有序,不可變,支持索引rem
元組(tuple)其實就是一個不能夠修改的列表字符串
for語句查input
也能夠用索引,能夠用切片,也能夠加步長,元組切片結果也是元組
元組不能進行修改,不可變
元組用於存儲一些比較重要的信息,元組在配置文件中會使用,存放一些用戶密碼的時候
常量也是在配置文件中使用
轉成列表再進行修改
# tu = (1,"alex",True,"大黑哥",[1,2,3]) # lst = [1,"alex",True,"大黑哥",[1,2,3]] # print(tu) # tu = (1,"alex",True,"大黑哥",[1,2,3]) # print(tu[0:6]) # for 循環 # for i in tu: # print(i)
range——範圍
print(list(range(0,10))) 顧頭不顧尾
面試題
python3中range(0,10) 是一個可迭代的對象,寫得是怎樣的打印的時候就是怎樣 :print(range(0,10)) # 結果是 range(0,10)
print(list(range(0,10)))# 結果是[0,1,2,3,4,5,6,7,8,9]
python2中 的 range 獲取到一個列表
range(0,10) # 結果是[0,1,2,3,4,5,6,7,8,9]
xrange和python3中range是類似的,都是可迭代對象,返回結果是 range(0,10)
range 和切片同樣:range 第一個是起始位置,第二個是終止位置,第三個是步長,步長默認爲1,終止位置和切片同樣都是顧頭不顧尾,他們之間用逗號分開
print(list(range(1,10,3))) # 結果是 [1,4,7] print(list(range(10,-2,-1))) # 結果是 [10,...,-1] print(list(range(10))) # 結果是 [0,1,...,9]
做用:range #能夠讓for循環數字
for i in range(55): print(i) # 結果是打印 1到54 for i in range(100, 0, -1): print(i) # 使用for循環和range 打印 100 ~ 1 # for i in range(100,0,-1): # print(i) # for i in range(1,101,2): # print(i) # for i in range(0,101,2): # print(i) # for i in range(0,101,6): # print(i)
range 不能和while一塊兒使用
# 錯誤示例: # while range(0,10): # print(1)
# lst = [] # flage = True # while flage: # name = input("請輸姓名:") # lst.append(name) # if len(lst) == 3: # flage = False # print(lst) # lst = [] # for i in range(3): # lst.append(input("請輸入姓名:")) # print(lst)