python 基礎知識-字符串(列表,元組,列表,集合,字典)筆記2 權亮

3.1. 字符串
字符串是以單引號’或雙引號"括起來的任意文本,比如’abc’,“xyz"等等,它是有序但是無法修改內容的。請注意,’'或”“本身只是一種表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c這3個字符。如果’本身也是一個字符,那就可以用”"括起來,比如"I’m OK"包含的字符是I,’,m,空格,O,K這6個字符。如果字符串內部既包含’又包含"怎麼辦?可以用轉義字符\來標識.

  1. 轉義字符
    這個字符可以轉移很多字符,比如\n表示換行,\t表示製表符,字符\本身也要轉義,所以\表示的字符就是.
    如果字符串裏面有很多字符都需要轉義,就需要加很多\,爲了簡化,Python還允許用r’‘表示’'內部的字符串默認不轉義.

下面列舉了轉義字符的用法之一,將字符串中的’進行轉義,防止計算機認爲這是一段字符串.讓計算機知道這\後面的’是一個’.

在這裏插入圖片描述

轉義字符的列表如下:
在這裏插入圖片描述
2) 運算符
下面是是字符串的運算符
在這裏插入圖片描述

  1. 字符串的格式化

a) 方法一 format_string % obj
在這裏插入圖片描述

百分號右邊的括號內是需要替換的內容.%s是字符串,%d是十進制整數.

下面是格式化字符的參考列表:
在這裏插入圖片描述

b) 方法二:str.format( ) 普通形式
在這裏插入圖片描述

c) 方法三:str.format( ) 接受參數形式
在這裏插入圖片描述

括號裏的前後順序可以調整.
3.2. 布爾值
布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要麼是True,要麼是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫).下圖爲布爾值的演示.
在這裏插入圖片描述

布爾值的運算
and運算是與運算,只有所有都爲True,and運算結果纔是True
or運算是或運算,只要其中有一個爲True,or運算結果就是True.
0 or 1 or 2 結果爲1,or的返回第一個遇見的爲True的值.
not運算是非運算,它是一個單目運算符,把True變成False,False變成True

3.3. 列表
Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。
創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可.
在這裏插入圖片描述
在將列表前,我們先介紹一個序列這個概念.
數據結構是以某種方式(如通過編號)組合起來的數據元素(如數、字符乃至其他數據結構)集合。在Python中,最基本的數據結構爲序列(sequence)。
列表就是序列中的一種.它是可以修改的.
接下來我們來介紹序列的幾種操作.

  1. 索引
    序列中的每個元素都有編號,即其位置或索引,其中第一個元素的索引爲0,第二個元素的索引爲1,依此類推。在
    有些編程語言中,從1開始給序列中的元素編號,但從0開始指出相對於序列
    開頭的偏移量.
    在這裏插入圖片描述

如果記不住最後一個索引的位置,我們可以用-1表示.倒數第二個用-2表述.以此類推.

下面爲一個練習題
在這裏插入圖片描述
2) 切片
除使用索引來訪問單個元素外,還可使用切片(slicing)來訪問特定範圍內的元素。爲此,
可使用兩個索引,並用冒號分隔.
第一個索引是包含的第一個元素的編號,但第二個索引是切片後餘下的第一個元素的編號.
如果要從列表末尾開始數,可使用負數索引,如果切片結束於序列末尾,可省略第二個索引, ,如果切片始於序列開頭,可省略第一個索引,要複製整個序列,可將兩個索引都省略
在這裏插入圖片描述
在這裏插入圖片描述

切片的第三個參數,步長,就是執行切片時候,從一個元素移到下一個元素,跳過幾個元素,如果是1,或者省略,那就是一個一個元素的提取,如果是2就是兩個元素的提取,如果是負數,就是從右往左提取.且第一個索引必須比第二個索引大
在這裏插入圖片描述

  1. 序列相加
    可使用加法運算符來拼接序列.

在這裏插入圖片描述

從錯誤消息可知,不能拼接列表和字符串,雖然它們都是序列。一般而言,不能拼接不同類
型的序
4) 序列乘法
序列與一個數字相乘時, 將重複這個序列這個數字的次數來創建一個新序列.

在這裏插入圖片描述
練習題 畫一個方框,內部寫一句話,我愛你中國.

在這裏插入圖片描述

  1. 成員資格
    要檢查特定的值是否包含在序列中,可使用運算符in。它檢查是否滿足指定的條件,並返回相應的值:滿足時返回True,不滿足時返回False.

在這裏插入圖片描述

通過上面的操作我們可以看出來,查找字符需要外加引號,字符多個,需要時連續的,不能是跳躍的.

在這裏插入圖片描述

練習題
在這裏插入圖片描述

上面的練習題,利用in的方法,檢查輸入的用戶名和pin code是否在數據庫內.

長度,最大值,最小值

Len()函數返回的是序列的長度.
Max()函數返回的是序列最大的元素.
Min()函數返回的是序列最小的元素.

在這裏插入圖片描述

字符串的最大最小值, 比較的是第一位字符的ascii碼大小.

在這裏插入圖片描述

接下來我們介紹列表的基本操作:
6) 修改列表
賦值給b,如下圖所示,然後我們設置b[1]等於新的列表,結果如下.

在這裏插入圖片描述

不能給不存在的元素賦值.

  1. 刪除元素
    在這裏插入圖片描述

刪除後,列表將會發生徹底變化,元素減少.
8) 將切片賦值

在這裏插入圖片描述
切片賦值和修改列表區別不僅是可以一次性多個元素賦值,最關鍵是,可以改變列表的長度.
同時切片賦值還可以起到插入的作用,如上圖的b[1:1]處,就是插入元素.
如果將某個位置的元素等於空,([])相當於刪除.
9) 列表的方法
a) Append方法
方法append用於將一個對象附加到列表末尾。
如下圖:append是增加列表,b[10:]=[]內是增加字符串和數字,需要增加列表,需要中括號內繼續增加中括號.
在這裏插入圖片描述

b) Clear方法

方法clear就地清空列表的內容
在這裏插入圖片描述

Qw[:]=[]和 qw.clear()是一樣的.

c) Copy方法
方法copy 複製列表
在這裏插入圖片描述

Copy方法不改變原本列表的結構.
d[2:4]=4 是不可以的,可以是字符串,d[2]=4是可以的.因爲4不具有迭代能力,它就是一個值而已.

d) Count方法

方法count計算指定的元素在列表中出現了多少次.
在這裏插入圖片描述

e) Extend方法
方法extend讓你能夠同時將多個值附加到列表末尾,爲此可將這些值組成的序列作爲參數提
供給方法extend。
在這裏插入圖片描述

通過上面的操作我們可以看出,append是將一個值放在列表的後面.而extend是將值的每一個元素放在列表的後面.
f) Index方法
方法index在列表中查找指定值第一次出現的索引.
在這裏插入圖片描述
g) Insert方法
方法insert用於將一個對象插入列表.

在這裏插入圖片描述

list.insert(index, obj)是insert的格式.他和qwe[1:1]的方法是一樣的.

h) Pop方法
方法pop從列表中刪除一個元素(末尾爲最後一個元素),並返回這一元素.
pop是唯一既修改列表又返回一個非None值的列表方法。

在這裏插入圖片描述

i) Remove方法
方法remove用於刪除第一個爲指定值的元素,只能是一個元素,不能多個.

在這裏插入圖片描述

j) Reverse方法
方法reverse按相反的順序排列列表中的元素.

在這裏插入圖片描述

k) Sort方法
方法sort用於對列表就地排序。就地排序意味着對原來的列表進行修改,使其元素按順序
排列,而不是返回排序後的列表的副本.
在這裏插入圖片描述

注意,字符串和數字不能比較.字符串比較,看的是第一位的字母的大小.

3.4. 元組

  1. 與列表一樣,元組也是序列,唯一的差別在於元組是不能修改的(你可能注意到了,字符串
    也不能修改)。元組語法很簡單,只要將一些值用逗號分隔,就能自動創建一個元組.
    在這裏插入圖片描述
    在這裏插入圖片描述

元組最重要的是每個元素之間有逗號.而且元組無法修改.但是可以找到最大值最小值.他是有序的.

  1. 關於元組無法修改的理解:
    在這裏插入圖片描述
    元組a的三個元素,無法改變,但是第二個元素是列表,列表內的元素是可以變化的,就算髮生變化,元組a的元素仍然沒有變化.仍然是數值,列表,數值.由於數值是無法改變的,所以也無法更換數值.(值得注意是,字符串也是不可改變的類型)
    同時元組滿足相加和*n倍數的法則.
  2. 元組的方法和列表基本一樣,只是增刪等方法不可用.
    在這裏插入圖片描述
  3. 元組的切片和列表切片,一樣理解
    在這裏插入圖片描述
    在這裏插入圖片描述
    b是空元組,c是一個元素的元組.

3.5. 集合
集合(set)是一個無序的不重複元素序列。
可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典。
通過下圖我們可以看出來,集合生成時,每個元素都必須是不可變的,而且會自動去重,和自動排序升序.
Set([1,2,3]),傳入的[1,2,3]是一個list,但是Set([1,2,3])則是告訴set有三個元素.裏面的[1,2,3]此時不是列表.
在這裏插入圖片描述

集合是可變的(set),也可以是不變的(frozenset),並且是無序的,所以沒法索引.集合之間可以運算,例如,並集,交集,子集,差集,對稱差

在這裏插入圖片描述

集合的方法
集合的方法有add,clear,copy,pop,remove等,和list差不多.值得注意的是pop()是隨機刪除一個元素.
在這裏插入圖片描述
在這裏插入圖片描述

3.6. 字典
字典的名稱指出了這種數據結構的用途, 通過名稱來訪問其各個值的數據結構。這種數據結構稱爲映射(mapping)。字典是Python中唯一的內置映射類型,其中的值不按順序排列,而是存儲在鍵下。鍵可能是數、字符串或元組。字典是可變的,可以儲存任何類型的得對象.它的索引就是索引鍵,顯示值.
字典的基本操作:
字典的索引是索引鍵,要修改值,必須索引相對應的鍵.成員資格的中只能查詢鍵的存在與否,不能查值.創建時同一個鍵不允許出現兩次,如果出現,會自動記住後面輸入的鍵.鍵必須不可變,可以使用字符串,數字,或者元組,但是不是使用列表.

在這裏插入圖片描述

和list比較,dict有以下幾個特點:
查找和插入的速度極快,不會隨着key的增加而增加;
需要佔用大量的內存,內存浪費多。
而list相反:
查找和插入的時間隨着元素的增加而增加;
佔用空間小,浪費內存很少。
所以,dict是用空間來換取時間的一種方法。
dict可以用在需要高速查找的很多地方,在Python代碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變對象。在Python中,字符串、整數等都是不可變的,因此,可以放心地作爲key。而list是可變的,就不能作爲key.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章