Python學習日記 Day3初識列表

2021-10-02 18:20:33 字數 4746 閱讀 5567

今天是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"

)print

(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碼。

由第三個輸出可以發現,當字串長度相同時,保持原有順序。

sort方法還有乙個引數cmp,用於指定比較的方式。

● 暫時排序:sorted函式

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,常量也是乙個符號化的量,但是一旦被它定義生成,則它的值無法再改變。每一種資料型別都有各自定義常量的方法 數值...