最近的教學進度進入了第二章,這一章主要講述了python中常用的序列結構:列表、元組、字典、字串、集合等。通過這些序列的學習在今後可以有效實現一些複雜的資料結構和模擬基本操作。那麼接下來就給出我個人整理的本章的部分知識要點和結構框架,雖然不算全面但卻有足夠的概括性。
2.1 列表
首先,我們需要了解列表的含義:它是python裡的乙個可變序列,是包含了若干元素的有序連續記憶體空間。它的形式是將元素放在「[ ]"中,元素之間用逗號隔開。
值得一提的是,在python中,同乙個列表中元素的型別可以不同。如:
[10,
20,30,
40]√[,
2.0,1,
[10,20
]]√#這裡不單單是體現了型別不同,還體現了列表具有多維性,此處為二維列表
2.1.1 列表建立與刪除
列表的建立方式有很多種,但是我們日常生活中最常用的方式有以下幾種:
1、使用賦值運算子「=」直接將乙個列表賦值給變數即可建立物件,如:
>>
>a_list=[1
,2,3
]>>
>a_list=
#通過直接賦空來建立空列表
2、使用list()函式
該函式的目的在於把其他型別的
可迭代物件型別的資料轉化為列表,如>>
>
list
(range(1
,10,2
))[1,3,5,7,9
]#得到的結果
>>
>
list
('hello world')[
'h',
'e',
'l',
'l',
'o',
' ',
'w',
'o',
'r',
'l',
'd']
#得到的結果
>>
>x=
list()
#建立空列表
3、列表推導式(待學,後面補充)
/ps:當列表不再使用的時候,我們一般用del命令刪除列表。
2.1.2 列表元素的增加
眾所周知,列表是一種可變序列,那必然是有一種操作可以改變列表的內容–沒錯,列表元素的增加和刪除。列表的建立和刪除有多種方法,同理,對列表元素的操作方法也不唯一。
1、可以使用**+**運算子來實現
>>
>alist=[3
,4,5
]>>
>alist=alist+[7
]>>
>alist[3,
4,5,
7]#得到的結果
>>
>alist=[3
,4,5
]>>9)
>>
>alist[3,
4,5,
7,9]
#得到的結果
3、使用extend()方法
這種方法可以將另乙個
迭代物件的所有元素新增至原列表尾部。>>
>a_list=[5
,2,3
]>>
>a_list.extend([7
,8,9
])>>
>a_list=[5
,2,3
,7,8
,9]#得到的結果
4、使用**insert()**方法將元素新增至列表的指定位置
>>
>alist=[3
,4,5
,7,8
]>>
>alist.insert(3,
6)#在列表的第三個和第四個元素之間插入值6
>>
>alist[3
,4,5
,6,7
,8]#得到的結果
5、使用乘法來擴充套件列表物件
將列表與整數相乘,生成乙個新列表,新列表是原列表中元素的重複。
>>
>alist=[3
,5,7
]>>
>alist*3[
3,5,
7,3,
5,7,
3,5,
7]#得到的結果
ps:當使用「*」時,並不建立元素值的複製,而是建立已有元素的引用。所以當修改其中乙個值時,相應的引用也會被修改。
2.1.3~2.1.5由於課程進度原因,待補充(學習提煉後)
2.1.6 切片操作
切片的引入極大的方便了我們的許多操作,例如擷取列表中的任意部分,也可以使用切片來修改和刪除列表中的部分元素,甚至可以通過切片操作為列表物件增加元素,可謂是綜合性很高了。靈活的使用切片這個工具可以給我們的程式設計過程帶來無限的方便性。
切片適用於列表、元組、字串、range物件等型別。
切片的形式:[start:stop:step]
其中第乙個數字表示開始位置(預設為0),第二個數字表示不包含這個數的切片截止位置(預設為列表長度),第三個數字表示步長(預設為1),省略步長的時候一般也省略最後冒號。
接下來看乙個切片的實際應用:
>>
>alist=[3
,4,5
,6,7
,9,11
,13,15
,17]>>
>alist[::
]#全部為預設值,即未發生變化[3
,4,5
,6,7
,9,11
,13,15
,17]#得到的結果
>>
>alist[::
-1]#步長為負數的話,要從右往左切[17
,15,13
,11,9
,7,6
,5,4
,3]#得到的結果
>>
>alist[::
2][3
,5,7
,11,15
]#得到的結果
>>alist[3:
:][6
,7,9
,11,13
,15,17
]#得到的結果
>>
>alist[3:
6][6
,7,9
]#得到的結果
>>
>alist[3:
6:1]
[6,7
,9]#得到的結果
>>
>alist[
100:][
]#得到的結果,因為初始值不存在,所以返回乙個空列表
還可以使用del命令和切片操作來刪除部分元素:
>>
>alist=[3
,5,7
,9,11
]>>
>
del alist[:3
]#刪除第四個元素以前的部分
>>
>alist[9
,11]#得到的結果
>>
>alist=[3
,5,7
,9,11
]>>
>
del alist[::
2]#從第乙個元素開始每次間隔兩個步長刪除元素
>>
>alist[5
,9]#得到的結果
ps:切片返回淺複製(指生成乙個新的列表,並把原列表中所有元素的引用都複製到新列表中。)
到目前主要的內容已至此,當後期學習了更多關於列表元素的細節與操作後,我會將中間部分進行整理,並縱觀整個第二章的知識點進行總結和反思。我相信,不積跬步無以至千里,在不斷的思考與提公升後,一定會實現將python這門語言運用自如的願望。謝謝瀏覽!
第二章 課後習題
第二章 從c到c 課後習題 一 名詞解釋 引用 所謂引用,就是給物件取乙個別名,使用該別名可以 訪問該物件。換句話說是使新物件和原物件共用一 個位址。這樣,無論對哪個物件進行修改,其實都是對同一位址的內容進行修改。因而原物件和新物件 規範的說,是物件和它的引用 總是具有相同的值。內聯函式 內聯函式是...
第二章 課後練習
1 使用者輸入乙個字串和乙個子串,程式必須列印出給定的子串在目標字串 現的次數。字串遍歷將從左到右進行,而不是從右到左。例如給定 abcdcdc 和 cdc 最終輸出為2.1 str1 input 請輸入第乙個字串 str2 input 請輸入第二個子串 str1 lenth len str1 st...
第二章總結
學了c 後,我對第二章做出了總結,了解了以下幾點 1 cin語句,cout語句的使用 2 資料型別和他們各自的資料範圍及程式設計應用 3 定義常量與變數的格式及它們的含義 4 字元變數的運算和getchar,putchar的使用 5 算數運算子的含義,在實際問題程式設計中的應用 6 在賦值語句中 是...