1,list,列表 列表使用中括弧[]表示,內可盛放各種數據類型如 1(整形),'abc'(字元串)等等 Ⅰ.列表的增 1、append() append是在列表最後面添加元素 2、insert() 在指定索引處插入新元素 insert(索引,新元素) 如果索引超出列表上界或下屆,則在開頭或結尾添加 ...
1,list,列表
列表使用中括弧[]表示,內可盛放各種數據類型如 1(整形),'abc'(字元串)等等
Ⅰ.列表的增
1、append()
append是在列表最後面添加元素
lis = ['a', 'b', 'c', 'd', 'e'] lis.append('f') print(lis) ['a', 'b', 'c', 'd', 'e', 'f']
2、insert()
在指定索引處插入新元素
insert(索引,新元素)
lis = ['a', 'b', 'c', 'd', 'e'] lis.insert(0,'A') print(lis) ['A', 'a', 'b', 'c', 'd', 'e']
如果索引超出列表上界或下屆,則在開頭或結尾添加
lis = ['a', 'b', 'c', 'd', 'e'] lis.insert(8,'A') print(lis) ['a', 'b', 'c', 'd', 'e', 'A']
3、extend()
將可迭代對象添加進列表裡
extend(可迭代對象)
s1 = 'fgh' lis = ['a', 'b', 'c', 'd', 'e'] lis.extend(s1) print(lis) ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
列表之間可以通過'+'連接,單個列表可以通過'*'複製
lis = ['a', 'b', 'c', 'd', 'e'] lis2 = ['f', 'g', 'h'] lis3 = lis + lis2 print(lis3) ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
s1 = ['a'] s2 = s1 * 5 print(s2) ['a', 'a', 'a', 'a', 'a']
Ⅱ.列表的刪
1、remove
remove按元素從左向右查找並刪除找到的第一個元素
lis = ['a', 'b', 'c', 'c', 'b', 'a'] lis.remove('c') print(lis) ['a', 'b', 'c', 'b', 'a']
如果remove的元素不在列表裡,則會報錯
lis = ['a', 'b', 'c', 'c', 'b', 'a'] lis.remove('x') print(lis) ValueError: list.remove(x): x not in list
2、pop
pop是按照索引彈出某個元素,預設為最後一個元素,又返回值,就是彈出的那個元素
lis = ['a', 'b', 'c', 'c', 'b', 'a'] s = lis.pop() print(s) print(lis) a ['a', 'b', 'c', 'c', 'b']
lis = ['a', 'b', 'c', 'c', 'b', 'a'] s = lis.pop(2) print(s) print(lis) c ['a', 'b', 'c', 'b', 'a']
3、clear
清空列表
lis = ['a', 'b', 'c', 'c', 'b', 'a'] lis.clear() print(lis) []
4、del
del的第一個用法是所有數據類型都有的,例如 del list1,就是在記憶體中刪除list1這個變數
lis = ['a', 'b', 'c', 'c', 'b', 'a'] del lis print(lis) NameError: name 'lis' is not defined
在操作列表時,del可以通過切片的方式來刪除列表中某些元素
lis = ['a', 'b', 'c', 'c', 'b', 'a'] del lis[0:3] print(lis) ['c', 'b', 'a']
Ⅲ.列表的改
1、通過索引修改
lis = ['a', 'b', 'c', 'c', 'b', 'a'] lis[0] = 'A' print(lis) ['A', 'b', 'c', 'c', 'b', 'a']
2、迭代修改一個索引範圍的元素
lis = ['a', 'b', 'c', 'c', 'b', 'a'] lis[0:3] = 'ABCDE' print(lis) ['A', 'B', 'C', 'D', 'E', 'c', 'b', 'a']
Ⅳ.列表的查
1、通過索引查找一個元素
lis = ['a', 'b', 'c', 'c', 'b', 'a'] print(lis[2]) c
2、通過元素找索引 index
index(value,[start,[stop]]) 可切片尋找
lis = ['a', 'b', 'c', 'c', 'b', 'a'] print(lis.index('a')) print(lis.index('a',1) 0 5
找不到會報錯
lis = ['a', 'b', 'c', 'c', 'b', 'a'] print(lis.index('d')) ValueError: 'd' is not in list
Ⅴ.列表的其他操作
1、reverse
對列表進行反轉,沒有返回值
lis = ['a', 'b', 'c'] lis.reverse() print(lis) ['c', 'b', 'a']
2、sort
sort(key=None,reverse=False)
對列表進行排序,就地修改,預設升序
reverse預設為False,當reverse為True時反轉變為降序
通過key進行自定義排序方式
lis = ['a', 'g', 'e', 'c' , 's', 'f', 'b'] lis.sort() print(lis) ['a', 'b', 'c', 'e', 'f', 'g', 's']
lis = ['a', 'g', 'e', 'c' , 's', 'f', 'b'] lis.sort(reverse=True) print(lis) ['s', 'g', 'f', 'e', 'c', 'b', 'a']
3、count
計數,統計某個元素在列表中出現的次數
lis = ['a', 'b', 'c', 'c', 'b', 'a'] print(lis.count('a')) 2
4、join
使用前提:列表中的元素全是字元串類型
用法: str.join(list)
lis = ['a', 'b', 'c', 'c', 'b', 'a'] print('_'.join(lis)) a_b_c_c_b_a
2,tuple,元組
由於元組不可修改,所以只有查一個用法
用法與列表的查一致
但值得註意的是,如果元素里嵌套一個可更改的類型如列表,雖然元組不可變,但是裡面嵌套的列表是可以改變的
tu = ('a', 's', ['a','b','c'], 'f') tu[2].append('d') print(tu) ('a', 's', ['a', 'b', 'c', 'd'], 'f')
原因是:元組不可改指的是元組元素的記憶體地址不可以改變,例如,假如上述元組元素'a'在記憶體中的地址是123456,而元素列表的記憶體地址是654321,修改列表是修改了記憶體地址654321內的數據,而不是修改了這個元素指向的地址,但是要修改一個元素如令tu[0] = 'c',是將元組的第一個元素地址指向了新的地址(字元串'c'在記憶體中的地址假設111111),改變了原有指向123456,是錯誤的