一、列表的簡介
列表是python中的基礎數據類型之一,其他語言中也有類似於列表的數據類型,比如js中叫數組,他是以[ ]括起來,每個元素以逗號隔開,而且他里面可以存放各種數據類型比如:li = [‘fuyong’,123,Ture,(1,2,3,’123’),[1,2,3,’小明’,],{‘name’:’fuyong’}] 。列表相比於字符串,不僅可以儲存不同的數據類型,而且可以儲存大量數據,32位python的限制是 536870912 個元素,64位python的限制是 1152921504606846975 個元素。而且列表是有序的,有索引值,可切片,方便取值。
下面我們就來詳細講解一下列表的增刪改查以及其他方法。
二、增加列表元素的方法
注意:與字符串的方法不同,所有對列表操作的方法均會改變原有列表的值,而不是創建一個新的列表!!!
▷ append()方法:
此方法是用來在列表的結尾處追加元素,例如:
1 name_list = ['趙','錢','孫','李','周',] 2 name_list.append('吳') 3 print(name_list) 4 # 結果是 ['趙', '錢', '孫', '李', '周', '吳']
▷insert()方法:
此方法是用來在列表的指定索引位置插入內容,后面參數分別傳遞索引值、插入元素
1 name_list = ['趙','錢','孫','李','周',] 2 name_list.insert(2,'付') 3 print(name_list) 4 # 結果為:['趙', '錢', '付', '孫', '李', '周']
▷extend()方法:
此方法是用來拓展列表,給他們追加一些元素,后面的參數可以是字符串,列表以及任何可迭代對象,python解釋器會將此對象一一拆分然后追加至列表,例如:
1 name_list = ['趙','錢','孫','李','周',] 2 name_list.extend('吳') 3 name_list.extend('鄭王') 4 name_list.extend("fu") 5 name_list.extend(['a','b','c']) 6 name_list.extend(range(3)) 7 print(name_list)
#結果為:['趙', '錢', '孫', '李', '周', '吳', '鄭', '王', 'f', 'u', 'a', 'b', 'c', 0, 1, 2]
三、刪除列表元素的方法
▷pop()方法:
此方法是用來刪除列表中的一個指定索引位置所對應的值,然后返回被刪除的對象,參數為索引值,默認刪除列表種最后一個元素,如下:
1 name_list = ['趙','錢','孫','李','周',] 2 name_list.pop() 3 name_list.pop(2) 4 name_print(list) 5 結果為['趙', '錢', '李']
▷remove()方法:
此方法是用來刪除列表中一個指定元素,參數就是指定元素(如果找不到則會報錯),如下:
1 name_list = ['趙','錢','孫','李','周',] 2 name_list.remove('孫') 3 print(name_list) 4 # 結果為:['趙', '錢', '李', '周'] 5 #注意:移除之前得確保列表中有指定的值,否則會報錯
▷clear()方法:
此方法是用來清空列表中所有的值(原有的列表就變成一個空列表了),如:
1 name_list = ['趙','錢','孫','李','周',] 2 name_list.clear() 3 print(name_list)
# 結果為 []
▷ del 方法:
此方法用來刪除整個列表(刪除之后此列表就不存在了)
1 name_list = ['趙','錢','孫','李','周',] 2 del name_list 3 print(name_list) 4 # 報錯:NameError: name 'name_list' is not defined
四、修改列表元素的方法
修改元素的方法用索引以及切片的方法,如:
▷ 索引:
list_name[0] = '修改后的值'
▷ 切片:
list_name[0:3] = [a,b,c]
注意:后面需要修改的值的總數可以不與切片的長度相對應,比如說[0:3]這個切片長度為3,后面可以傳一個有2個或者4個元素的列表,此時,只是將切片所對應的值剔除,然后將后面列表依次插入
后面也可以賦值一個字符串,此時,只是將切片所對應的值剔除,然后將后面字符串拆開然后依次插入
list_name[0:3] = 'fuyong'
name_list = ['趙','錢','孫','李','周',]
name_list[2]= 'sun'
print(name_list)
#結果為:['趙', '錢', 'sun', '李', '周']
name_list[2]= name_list[2].title()
print(name_list)
# 結果為:['趙', '錢', 'Sun', '李', '周']
name_list[0:2] = ['zhao','qian']
print(name_list)
#結果為:['zhao', 'qian', 'Sun', '李', '周']
name_list[0:2] = ['zhao','qian','zheng']
print(name_list)
#結果為:['zhao', 'qian', 'zheng', 'Sun', '李', '周']
name_list[0:2] = ['zhao']
print(name_list)
#結果為:['zhao', 'zheng', 'Sun', '李', '周']
name_list[0:3] = 'fuyong'
print(name_list)
#結果為:['f', 'u', 'y', 'o', 'n', 'g', '李', '周']
五、查詢列表元素的方法
查詢元素的方法用索引以及切片的方法,如:
▷ 索引:
list_name[0]
▷ 切片:
list_name[0:3]
list_name[0:3:2]
1 name_list = ['趙','錢','孫','李','周',] 2 print(name_list[0]) # 趙 3 print(name_list[2]) # 孫 4 5 print(name_list[0:2]) # ['趙', '錢'] 6 print(name_list[1:]) # ['錢', '孫', '李', '周'] 7 8 print(name_list[0:4:2]) # ['趙', '孫'] 9 print(name_list[:4:2]) # ['趙', '孫'] 10 11 print(name_list[4:0:-1]) #['周', '李', '孫', '錢'] 12 print(name_list[-2:0:-1]) #['李', '孫', '錢']
另外,如果需要查詢列表中所有的元素,可以用for循環來實現,如:
1 name_list = ['趙','錢','孫','李','周',] 2 for name in name_list: 3 print(name)
'''
輸出結果如下:
趙
錢
孫
李
周
'''
六、列表的其他方法
▷ len(list)方法:
此方法可以用來計算列表的長度,如下:
1 name_list = ['趙','錢','孫','李','周',] 2 print(len(name_list)) 3 #輸出結果為5
▷count()方法:
此方法用來計算列表中一個元素出現的次數,如下:
1 name_list = ['趙','錢','孫','李','周','趙'] 2 print(name_list.count('趙')) 3 # 輸出結果為2
▷sort()方法:
次方法是對列表進行排序(列表里的元素要為數字類型),默認是正序,可以指定倒序(reverse = True)
1 num_list = [1,3,6,2,5,0,8] 2 num_list.sort() #默認為正序排列 3 print(num_list) 4 #輸出結果為:[0, 1, 2, 3, 5, 6, 8] 5 6 num_list.sort(reverse=True) #指定reverse為True 則為倒序 7 print(num_list) 8 #輸出結果為[8, 6, 5, 3, 2, 1, 0]
▷reverse():
此方法是將列表里所有元素進行翻轉,注意,不是排序,是將所有元素倒過來 ,如:
1 name_list = ['趙','錢','孫','李','周'] 2 name_list.reverse() 3 print(name_list) 4 #結果為:['周', '李', '孫', '錢', '趙']
▷join()方法:
此方法用法與字符串的join方法一樣,就是將列表里的元素用指定字符連接起來,字符可以是空格,可以是空字符,可以是下划線以及任意字符,如下:
1 name_list = ['趙','錢','孫','李','周'] 2 print('*'.join(name_list)) # 結果:趙*錢*孫*李*周 3 print(' '.join(name_list)) # 結果:趙 錢 孫 李 周 4 print(''.join(name_list)) # 結果:趙錢孫李周 5 print('__'.join(name_list)) # 結果:趙__錢__孫__李__周
注:可以利用這種方法將一個列表轉為字符串格式
七、列表的嵌套
上面說過,列表里可以放一切元素,所以,當然也可以嵌套列表:
如果需要對列表里的列表進行增刪改查,只需先索引到里面的列表,然后再進行操作即可,如下:
name_list = ['趙','錢','孫',['付','傅','符'],'李','周','趙']
print(name_list[3][1]) # 傅
print(name_list[3][0:2]) #['付', '傅']
name_list[3][1]= 'fu'
print(name_list)
# 結果為:['趙', '錢', '孫', ['付', 'fu', '符'], '李', '周', '趙']
name_list[3].pop(1)
print(name_list)
#結果為['趙', '錢', '孫', ['付', '符'], '李', '周', '趙']
name_list[3].remove('符')
print(name_list)
#結果為:['趙', '錢', '孫', ['付'], '李', '周', '趙']