列表:
#以中括號包圍,可變的有序集合
li = ['1','2','3','4','5','6','7','8','9','0',['a','b,','c']]
#插入:
li.insert(1,'your') #在1的索引位上插入數據 li.append('a') #將字符追加到列表 a='your name is {}' li.extend(a) #將一個字符串或列表追加到列表
#刪除
print(li.remove('1')) #刪除指定元素 del li[1] #刪除指定索引位的元素。del可以刪除任何東西。是python中內置的 li.clear() #清空列表
#修改
li[2] = 'a' #更新指定索引位的值
#查
print(li.index('2')) #查找指定字符的索引位,沒有則返回錯誤
#切片查
print(li[1:]) #列表切片,指定索引位到最後 print(li[1:3]) #列表切片,開始索引:結束索引(不包括結束位置,-1代表最後一位) print(li[:-1]) #列表切片,從開始到最後一位(不包括結束位置) print(li[1::2]) print(li[::2]) print(li[1:-1:2]) #列表切片,其實索引:結束索引:步長()
#統計、排序、倒序
print(li.count('1')) #統計列表中指定元素的個數 print(li.sort()) #按照數字、大寫、小寫的順序排序 print(li.pop(1)) #彈出並刪除指定索引位的元素,默認刪除最後一位 li.reverse() #將列表倒序輸出
#淺copy
li = ['1','2','3','4','5','6','7','8','9','0',['a','b,','c']] new_li = li.copy() new_li[3] = 'your'
#修改第一層列表
print(li) ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ['a', 'b,', 'c']] print(new_li) ['1', '2', '3', 'your', '5', '6', '7', '8', '9', '0', ['a', 'b,', 'c']]
#這是正常的,修改新的列表,原列表元素不修改。接下來看一下修改嵌套列表
new_li[10][1] = 'thanks' print(li) ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ['a', 'thanks', 'c']] print(new_li) ['1', '2', '3', 'your', '5', '6', '7', '8', '9', '0', ['a', 'thanks', 'c']]
#這不正常了啊。怎麼修New_li,原來的li也更改了呢。好吧,這就是python的淺copy。只複製第一層元素內存地址給新的列表。子元素還指向原來的內存地址
#深copy
#在Python中如果我們想要完全的複製一個列表。需要使用到copy模塊中的deepcopy方法
import copy new_li = copy.deepcopy(li) new_li[3] = 'I' new_li[10][1] = 'thanks' print(li) ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ['a', 'b,', 'c']] print(new_li) ['1', '2', '3', 'I', '5', '6', '7', '8', '9', '0', ['a', 'thanks', 'c']]
#看到輸出結果,正是我們想要的結果
元組:
特性:以小括號包圍逗號分隔的一個只讀列表。
注意:創建單個元組的元組時也要使用逗號結尾。否則創建類型是str
tup_1=('3','4','10','11','22') print(tup_1.index('4')) #查找指定元素的索引 print(tup_1.count('1')) #統計指定元素出現的次數 print(tup_1[1]) #查找指定索引位的元素 print(tup_1[2:-1]) #元組切片, print(id(tup_1)) #打印元組的內存地址 print(max(tup_1)) #打印元組最大值 print(min(tup_1))