今天是2023年2月12日,陰轉多雲,9~15℃有一點厭學,但還是開啟了部落格,想逼自己學點東西。
列表由一系列按特定順序排序的元素組成,是線性表的一種表示。不同於其它語言中的陣列,python在同一列表中可以儲存不同型別的元素,型別既可以是python標準資料型別,也可以是自定義型別。
在python中,使用方括號( )來表示列表,並用逗號來分割其中的元素。例如乙個簡單列表:
list1 =[1
,2.0
,"3",[
4]]
訪問列表元素的操作和其它語言中的陣列使用方法類似,使用索引( [index] )就可以訪問對應元素。
print
(list1[2]
)#output:3
索引從0開始,這與許多其它語言相同。此外,python允許使用者使用負索引來訪問倒數元素。
print
(list1[-1
])#output:[4]
-index表示倒數第index個元素。使用 [index1:index2] 可以訪問該列表的子列表。
list2 = list1[0:
2]print
(list2)
#output:[1, 2.0]
子列表中的元素為原列表索引從 index1 到 index2 - 1 的元素。python為列表提供了很多簡單快捷的操作方式,下面是一些簡單的操作:
1、修改列表元素
要修改列表元素,可指定列表名和索引,並賦予元素新值。
names =
["alex"
,"blair"
,"chris"
]#本部分均以該列表為初始列表進行操作演示
names[1]
="black"
print
(names)
#output:['alex', 'black', 'chris']
2、新增列表元素
python列表提供了兩個新增元素的方法。
"dock"
(names)
#output:['alex', 'blair', 'chris', 'dock']
● 在列表中插入元素:insert方法
使用insert方法可將元素插入列表的任何位置。
#list_name.insert(index , object)
names.insert(2,
"dock"
)print
(names)
#output:['alex', 'blair', 'dock', 'chris']
insert方法將把元素插入列表的index位置,再將後面的元素右移。3、刪除列表元素
python列表提供了兩個方法和乙個關鍵字用於刪除元素。
● del關鍵字語句
使用del關鍵字可刪除已知位置的元素。
#del list_name[index]
del names[1]
print
(names)
#output:['alex', 'chris']
● 彈出元素:pop方法
將列表看作乙個棧,使用pop方法可將末尾元素彈出列表。
#list_name.pop()
names.pop(
)print
(names)
#output:['alex', 'blair']
pop方法具有過載方法,需要提供乙個索引引數,可將任意已知索引的元素彈出列表。
#list_name.pop(index)
names.pop(0)
print
(names)
#output:['blair', 'chris']
除了能將元素彈出列表,達到與del關鍵字相同的效果,pop方法還具有乙個返回值,返回被彈出的元素值。
name = names.pop(
)print
(name)
#output:chris
● 查詢值刪除:remove方法
當不知道想要刪除的元素索引,但知道元素的值時,可以通過remove方法刪除元素。
#list_name.remove(value)
names.remove(
"alex"
)print
(names)
#output:['blair', 'chris']
如果通過變數刪除元素,還可在元素從列表中被刪除後再通過變數使用元素。
name =
"alex"
names.remove(name)
print
(name)
#output:alex
remove方法只能刪除第乙個值匹配的元素。4、列表排序
列表中的元素若不經過排序,順序通常是無法**的。有時我們需要初始順序,但有時有希望列表按特定順序排列。python提供了幾種對列表進行排序的方式。
● 永久性排序:sort方法
sort方法可以對列表進行排序,但這一過程是永久的,一旦進行可能就無法回到初始狀態。
sort方法有兩個可預設的引數key和reverse。key引數需要乙個用於排序的元素;reverse引數需要乙個布林值以決定公升降序排序。
#list_name.sort(key = sort_key , reverse = bool_value)
names =
["harry"
,"bulk"
,"jack"
,"parker"
,"michael"
]#排序中均使用該列表作為初始列表
names.sort(
)#無參時預設引數為(key = none , reverse = false) 根據字串大小公升序
print
(names)
#output:['bulk', 'harry', 'jack', 'michael', 'parker']
names.sort(reverse =
true
)#省略引數key時key = none 根據字串大小降序
print
(names)
#output:['parker', 'michael', 'jack', 'harry', 'bulk']
names.sort(key =
len)
#省略引數reverse時reverse = false 根據字串長度公升序
print
(names)
#output:['jack', 'bulk', 'harry', 'parker', 'michael']
字串大小比較和c中strcmp函式和c++中字串』 < '運算子過載相同,均逐位比較字元的ascii碼,中文比較unicode碼。● 暫時排序:sorted函式由第三個輸出可以發現,當字串長度相同時,保持原有順序。
sort方法還有乙個引數cmp,用於指定比較的方式。
sorted方法將返回乙個排序後的列表,但不改變列表原有的排序。
#sorted(list_name)
print
(sorted
(names)
)#output:['bulk', 'harry', 'jack', 'michael', 'parker']
print
(names)
#output:['harry', 'bulk', 'jack', 'parker', 'michael']
排序後的列表也可儲存在其它變數中。
sorted函式同sort方法一樣有cmp , key , reverse三個預設引數。● 列表反置:reverse方法
reverse方法可以將列表反置(反轉),即按原有順序從尾到頭排序。
#list_name.reverse()
names.reverse(
)print
(names)
#output:['michael', 'parker', 'jack', 'bulk', 'harry']
● 獲取列表長度:len函式
len函式能獲取並返回列表的長度(元素個數)。此外,len函式還可用於其它資料型別,如字串。
#len(object)
print
(len
(names)
)#output:5
正直的人遵守著正直的法則,卻沒有人與他一起遵守,這就只能給惡人帶來好處,讓正直的人遭遇不幸。
面試日記Day 3
簡單記錄一下還有映像題目 筆試部分 面試部分 重寫equals和hashcode,面試官問為什麼重寫hashcode時要一併重寫euqals,這裡答的不好,正確回答查了下應該是 當兩個物件 equals 比較為 true,那麼 hashcode 值應當相等,反之亦然,因為當兩個物件hashcode ...
linux移植日記 day 3
目標 完成頁表 一 資料結構 元素功能 pagemask 控制頁面大小,預設為0,頁面大小為4kb 第二行 vpn2 對應cp0暫存器的entry hi暫存器 第三行 第四行 對應cp0暫存器的entry lo0和entry lo1暫存器 class tlbentry lo extends bund...
R語言學習日記 Day 3
vector matrix array factor data.frame list 變數是乙個符號化的量,它可以引用向實際的資料,使用過程中,可以更改其內容。定義方式有四種 a z,0 9,常量也是乙個符號化的量,但是一旦被它定義生成,則它的值無法再改變。每一種資料型別都有各自定義常量的方法 數值...