Redis 資料結構
阿新 • • 發佈:2020-11-22
-
- 前面我們瞭解了str、int、float等資料型別,比如人名用str,name=‘菜鳥’,那如果我們一個部門呢?還用字串存資料嗎?names =‘菜鳥,張三,李四’這樣存資料,在呼叫的時候豈不是很麻煩,比如我們想取到星星,還要用到字串方法,會比較麻煩,或者你想每個人取一個字串的變數,這樣也很麻煩,有多少個人,豈不是就要定一個多少個變量了?
- 為了解決這些麻煩,就有了列表,顧名思義,就是一個表,裡面村範一系列資料,python裡的列表定義比其他語言要簡單,中括弧 [ ]括起來就是列表了,當然在python裡列表也叫陣列,大家不要因為名字不同而困惑,都一個概念,列表增刪改查如下:
- 列表命名
-
# 列表命名,列表名=[元素1,元素2,元素3],元素用英文逗號隔開,元素如果是字串需要加引號 names =['張三','李四','王五','小紅','小明'] # 列表裡的元素是有排序的,所以每個元素都有一個數字編號,計算機是從0開始的,所以['張三','李四','王五','小紅','小明'] # 這些元素對應的索引一次為:01234,當然在python裡除了索引這個叫法,還有下標、角標,都一個意思
- 列表取值
-
1 # 列表取值 2 print(names[0]) #列表名[元素索引],這個格式就去到索引對應的元素了,這裡取到'張三',列表只有這一種取值方法 3 print(names[-1]) #負數表示從後往前取元素,這裡取到了小明
- 新增元素
-
1 # 新增元素 2 names.append('剛剛') #列表名.append(元素),這個方法是在列表最後面加一個元素,這裡在列表最後加上'剛剛' 3 print(names) # 結果為:['張三', '李四', '王五', '小紅', '小明', '剛剛'] 4 names.insert(2,'李白') #列表名.insert(索引值,元素),這個方法是在指定索引位置插入元素,之前該位置及後面的元素向後移一位 5 print(names) #結果為:['張三', '李四', '李白', '王五', '小紅', '小明', '剛剛']
-
修改元素
-
1 # 修改元素 2 names[0] = '杜甫' #列表名[索引值]=新元素,這樣就修改元素了 3 print(names) #結果為:['杜甫', '李四', '李白', '王五', '小紅', '小明', '剛剛'
- 刪除元素
-
1 # 刪除元素 2 names.pop() #預設刪除最後一個元素 3 print(names) #結果為:['張三', '李四', '王五', '小紅'] 4 names.pop(2) #刪除指定下標的元素 5 print(names) #結果為:['張三', '李四', '小紅'] 6 names.remove('小紅') #和pop不同,刪除列表中指定的元素 7 print(names) #結果為:['張三', '李四'] 8 del names[1] #刪除指定下標的元素 9 print(names) #結果為:['張三'] 10 names.clear() #清空列表 11 print(names) #結果為:[]
- 定義多維陣列
-
1 # 多維陣列 2 names1=['小剛','小紅',['宙斯','美杜莎'],'杜甫','李白'] #數組裡再來一個資料就是二維陣列了 3 names2=['小剛','小紅',['宙斯',['美杜莎','女王']],'杜甫','李白'] 4 print(names2[2][1][1]) #取到的值為'女王'
- 列表內建方法:
-
1 # 內建方法 2 names =['張三','李四','王五','小紅','小明'] 3 names2 = ['宙斯','美杜莎'] 4 # names.extend(names2) #合併兩個list,將names2合併到names裡面 5 print(names) #結果為:['張三', '李四', '王五', '小紅', '小明', '宙斯', '美杜莎'] 6 names+names2 #合併兩個list。但和上面不一樣,這裡只是把兩個列表連結起來,原來的列表不會變化,類似字串相加 7 new_name =names+names2 #用+號的時候,需要用一個新列表來接收 8 print(new_name) #結果為:['張三', '李四', '王五', '小紅', '小明', '宙斯', '美杜莎'] 9 print(names.count('張三')) 10 print(names.sort())
- 列表切片:
- 顧名思義,就是把列表切成我們想要的片段。上面瞭解到,列表是有下標、索引的,name切片就是根據這個下標來進行切片的,比如我想取第一個元素到第三個元素,那麼就這樣寫:names[0:3],這樣就取到前面三個元素了
- 但是你會發現,3的下標第四個元素,為啥切片要切到3呢,因為python切片裡,顧頭不顧尾,意思就是從下標取到結束下標的前一位元素。
- 另外如果是從0下標開始取值,那麼可以省略不寫,直接寫names[:3]即可
- 如果是取值到最後,那麼可以省略不寫最後的索引,直接寫names[3:]即可
- 顯然[:]這樣就是取全部了
- 步長:每走幾步取一個元素,比如num【0:10:2】,這裡就是美兩個元素取一個,取值結果為[1,3,5,7,9]
-
1 # 列表切片 2 nums=[1,2,3,4,5,6,7,8,9] 3 print(nums[1:3]) #取第二個元素到第三個元素,結果為[2, 3] 4 print(nums[3:]) #從第四個元素開始,取所有的元素,一直取到最後,結果為[4, 5, 6, 7, 8, 9] 5 print(nums[:6]) #取所有元素,從頭開始取,前面的下標可以不寫,結果為[1,2,3,4,5,6] 6 print(nums[1:10:2]) #步長為2,每兩個元素取一個,結果為[1,2,3,4,5,6,7,8,9] 7 print(nums[::1]) #取素有的元素,1就是每個元素都取,結果為[1,2,3,4,5,6,7,8,9] 8 print(nums[::-1]) #步長為負數的情況下是從後往前取,結果為[9, 8, 7, 6, 5, 4, 3, 2, 1] 9 print(nums[7:1:-2]) #步長為負數時,這裡的下標必須是前面的下標大於後面的下標,因為他是從後往前取的,結果為:[8, 6, 4]