python初學一(list的處理方式)
一、列表的基本知識:
1、列表的建立:
①、直接建立:
②、用list()轉化:
函式物件必須是iterable,list(iterable);
列表與字串互相轉化:
2、列表可以進行拼接(+),類似str:
str1 = [1,2,]
str2 = ['a','b']
print(str1+str2) 相當於 str1.expend(str2)
二、列表元素的增刪改查:
1、增加元素: append、extend、insert
全是是list內部函式,不可用賦值的方法增加列表的元素,區別於dict。
①append 追加 : str.append()
append函式沒有return值,新增元素儲存在原list中。
list1 = [1,2,'a']
list1.append([6,7,8])
print(list1) # 結果 [1, 2, 'a', [6, 7, 8]] 注意與extend的區別。
②expend 擴充套件 :str.extend()
list1 = [1,2,'a']
list1.extend([777,888,9999])
print(list1) #結果 [1, 2, 'a', 777, 888, 9999]
③insert 插入: str.insert()
list1 = [1,2,'a']
list1.insert(2,[99,000]) # 先索引 後插入值
print(list1) # 結果 [1, 2, [99, 0], 'a']
2、刪除元素(pop、remove、del(系統函式)):
①pop():根據 索引,得到 值
list1 = [1,2,'a']
p = list1.pop() # 支援索引 預設最後一個 return刪除元素
print(list1) #刪除元素後的list
print(p) # return刪除元素
# 結果 [1, 2]
a
②remove:根據 值,只刪一個
不知道索引時,指定元素刪除,重複元素時預設只刪除第一個,沒有return值。
list1 = [1,2,'a',9999,9999,9999]
p = list1.remove(9999)
print(list1)
print(p)
③系統函式del: 根據 索引,不可訪問
用法:del list[index] ,不加索引時全部刪除,且刪除不可訪問,注意與 clear 區別
list1 = [1,2,'a',9999,9999,9999]
del list1[3] #
print(list1)
3、修改元素和檢視元素:
①查詢元素:
用索引的方式查詢元素。
②修改元素:
用索引賦值的方式修改元素 : list1[index] = ' ',但是不可以利用賦值操作增加 索引範圍 以外的元素(增加用append、extend)。
4、查詢元素是否存在: in、not in 返回bool值
三、list函式:
1、list常用的系統函式:max() 取最大值
注意: max 與 min 是按照ASCII碼來排序,根據第一個字母,如果元素是列表,列表比較大小是按照列表第一個元素來比較。
max 、min可用於字串中。
list1 = [1,2,'a',9999,9999,9999]
list2 = ['a78','123','sh']
list3 = [747,888,989]
print(max("29889aA7"))
print(list1) #報錯 列表中int與str無法比較
print(list2)
print(list3)
2、計數count, 擴充套件extend、索引index:
list1 = [1,2,'a',9999,9999,9999]
print(list1.count(9999))
print(list1.index(9999,4,5))
3、反向reverse,排序sort,清空clear,複製copy:
注意 sort()沒有返回值,改變原list
copy()為淺拷貝
sort()預設從小到大
(1)list.clear() 注意事項:
清空clear()請注意,建議用 賦值 空列表([]) 來清空。
list1 = [1,2,3]
list2 = []
list2.append(list1) append追加列表時相當於追加一個 引用,他們共同使用一個記憶體空間,因此清空list1時list2也跟著清空。
print(list1,list2)
list1.clear()
print(list1,list2) # 結果 : [1, 2, 3] [[1, 2, 3]]
# [] [[]]
# 改進1、
import copy
list1 = [1,2,3]
list2 = []
list2.append(list1)
list2 = copy.deepcopy(list2) 深拷貝
print(list1,list2)
list1.clear()
print(list1,list2) # 結果 : [1, 2, 3] [[1, 2, 3]]
[] [[1, 2, 3]]
# 改進2、
可以將原始碼中 list1.clear() 改為 list1 = [] 。 列印結果與 改進1 結果相同。