列表序列
1. 通過下標訪問列表。
2. 刪除列表元素的方法:
使用del語句:del list[idx]
使用列表函式remove: list.remove([列表元素物件]): list.remove(367).
使用列表函式pop(idx): 刪除並返回列表的指定位置的元素。
3. 列表解析,使用for迴圈建立乙個符合指定條件的列表
>>>[ i * 2 for i in [8, -2, 5] ]
[16,-4, 10]
>>>[ i for i in range(8) if i % 2 == 0 ]
[0,2, 4, 6]
4. 列表型別內建函式
列表型別內建函式
list.count(obj) 返回乙個物件 obj 在列表中出現的次數
list.extend(seq) 把序列 seq 的內容新增到列表中
list.index(obj,i=0,
j=len(list)) 返回 list[k] == obj 的 k 值,並且 k 的範圍在 i<=k引發 valueerror 異常.
list.insert(index,obj) 在索引量為 index 的位置插入物件 obj.
list.pop(index=-1) 刪除並返回指定位置的物件,預設是最後乙個物件
list.remove(obj) 從列表中刪除物件 obj
list.reverse() 原地翻轉列表
list.sort(func=none,key=none,reverse=false) 以指定的方式排序列表中的成員,如果 func 和 key 引數指定,則按照指定的方式比較各個元素,如果 reverse 標誌被置為
true,則列表以反序排列.
注意!注意!注意!
python中那些可以改變物件值的可變物件的方法是沒有返回值的!這些可變物件的方法是在當前物件上進行操作修改當前物件而不是返回新物件。
不可變物件的方法是不能改變它們的值的,所以它們必須返回乙個新的物件. 不可變物件的方法是在根據當前物件的值計算後返回新的物件。
元組序列
元組是不可變的。如果元組元素是乙個列表的話,元組在某種成都上就是可變的。python中無法建立只有乙個元素的元組。
python的淺拷貝和深拷貝
核心模組: copy
我們剛才描述的淺拷貝和深拷貝操作都可以在 copy 模組中找到.其實 copy 模組中只有兩個函式可用:copy()進行淺拷貝操作,而 deepcopy()進行深拷貝操作.
不可變物件無所謂深拷貝,淺拷貝,是建立乙個新物件。
序列物件可以通過切片複製和工廠函式複製方式進行複製,例:
base=[1,2,[3,4])
copy1=base[:]#切片訪問複製
copy2=list(base)#工廠函式複製
這兩種複製方式在複製過程中對序列物件中可變成員的複製是引用複製而不是建立新物件,屬於淺複製。如果要實現深複製,即為序列物件中可變成員建立新物件,需要使用copy模組的deepcopy(obj)方法。
20201021 Python學習筆記9 2
定義函式 在python中,定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。自定義乙個求絕對值的my abs函式 def my abs x if x 0 return x else return x print ...
編譯原理學習筆記 9 2 錯誤的分類
前言 更新中。跳過目錄 從編譯程式角度,將源程式中錯誤分為兩類 程式結構不符合語法 包括詞法 規則的錯誤。例 乙個具有三處語法錯誤的賦值語句 a x,y 3 1416 t t h 對語法錯誤大家都很熟悉,它可以在編譯過程的詞法分析階段或語法分析階段查詢出來。一般來說,對於語法錯誤,編譯程式能比較準確...
Java學習 day9 (2)習題
習題1 請完成下面的 思考題 我有5個學生,請把這個5個學生的資訊儲存到陣列中,並遍歷陣列,獲取得到每乙個學生資訊。學生 student 成員變數 name,age 構造方法 無參,帶參 成員方法 get set 儲存學生的陣列?自己想想應該是什麼樣子的?package it.guangwei.da...