第六章 python3列表list

2022-08-14 07:18:16 字數 2669 閱讀 9040

在開始之前我們先了解一下序列(sequence):

序列中的元素都是有序的,其實在前面已經分享過一種序列了,那就是字串;python總共有6個內建的序列:即列表、元組、字串、unicode字串、buffer物件和 xrange物件。

序列的操作包括:索引、長度、切片、遍歷、組合(序列相加)、檢查成員、重複(乘法)、最小值和最大值。

今天我們了解下資料型別中的列表list,是python中最常用的序列之一。

使用方括號[ ]來建立列表,元素item間用逗號(,)隔開;例項**:

從上面的例項我們可以看出,list中的元素item可以是不同型別的物件;還可以看出上面的list在定義時字串元素item使用了單/雙引號,輸出結果時python直譯器預設用單引號表示字串元素,我們自己在定義字串元素時可以借鑑一下。

列表的索引和切片與前面講的字串索引是相同的, [頭下標:尾下標) list切片遵循「左閉右開」原則,也叫「包左不包右」。

例項**:

合理的使用負索引進行訪問和切片,可以提高檢索list的效率。對正負索引和切片的概念不清楚的地方,

字串擷取,也叫字串切片,使用方括號[ ]來擷取字串,在python中單字元也是作為乙個字串使用。

字串[開始索引:結束索引:步長]

開始索引:從指定位置開始擷取;

結束索引:從指定位置結束擷取,但不包含該位置的字元。

步長:不指定時步長為1;

字串[開始索引:結束索引]

首先我們了解下字串的索引,python中字串有兩種索引方式,如下圖:

列表拼接,拼接後會產生乙個新列表。例項**:

正索引代表從前往後索引,預設從0開始;負索引代表從後往前索引;索引值也可以叫下標,例項**:

字串擷取

遵循「左閉右開」原則,也叫「包左不包右」:

[開始下標:開始下標)

有兩種索引方式就有兩種擷取方式,例項**:

根據情況靈活使用這兩種索引方式擷取字串,因為會涉及到執行效率的問題,比如:想快速獲取最後一部分字串,使用負索引是最快的。

例項**:

注意: += 操作符是把b列表中每個元素拼接到了a列表元素的後面。

在前面剛才提到了list中的元素可以是不同的資料型別物件;例項**:

說明:list_a[-1]:取出a列表最後一位元素,它是list型別;

list_a[-1][-1]:取出a列表最後乙個元素中的最後乙個元素。

用 in 判斷是否存在於列表中

列表推導式:這個很重要也比較常用,格式如下:

[表示式 for 變數 in 可迭代物件]

或[表示式 for 變數 in 可迭代物件 if 條件]

注意了,上面list.sort()只針對元素型別相同的列表進行排序,不同型別元素的列表進行排序是會報錯的;例項**:

總結一下sort與sorted區別:

sort是list自身的方法;sorted是python內建函式,可以對所有可迭代的物件進行排序操作。

list的sort方法改變的是原列表中元素的順序,而內建函式sorted返回的是乙個新的list,原列表保持不變。

總結一下上面的列表複製:

id() 獲取物件的記憶體位址,這樣 = 和 copy()兩者的區別就明顯了;

使用=是引用賦值,兩個物件指向同一塊記憶體位址,變更其中乙個另外乙個也會跟著變;

copy()是複製乙個副本,原物件和新複製的物件互不影響。

del語句刪除乙個或者多個物件的引用(引用可以理解為給物件貼的標籤),而不是刪除記憶體中的物件(value);

當某個物件的所有引用都被刪除後(物件的所有標籤被撕完後),會自動執行魔法方法__del__將這個物件作為垃圾**掉。例項**:

第六章 列表

列表類似於其他語言的陣列 可以存多種資料型別的值 使用中括號 list1 10 20,30 40,50 60 使用內建函式list list2 list 10,20,30,40,50 使用列表生成式 list3 i for i in range 10 儲存0到9的整數查詢元素索引 通過索引,獲取單個...

python 第六章 字典

1.在python中,字典用放在花括號 中的一系列鍵 值對表示 tip 鍵 值對的排列順序與新增順序不同。python不關心鍵 值對的新增順序,而只關心鍵和值之間的關聯關係 2.在對字典遍歷的時候要記住加上.items 表示獲取字典的內容 3.title將獲取的字母首字母大寫 4.鍵 值,其中鍵代表...

第六章 基礎紋理(3)

儘管在一開始,我們在渲染中使用紋理是為了定義乙個物體的顏色,但後來人們發現,紋理其實可以用來儲存任何表面屬性。一種常見的用法就是使用漸變紋理來控制漫反射光照的結果。在之前計算漫反射光照結果的時候,我們都是使用表面法線和光照方向的點積結果與材質的反射率相乘來得到表面的漫反射光照。但有時,我們需要更加靈...