2020_9_29_集合和字串

安師兄發表於2020-09-29

集合(set)

集合是容器型資料型別, 將{}作為容器的標誌裡面多個元素用逗號隔開:{元素1,元素2,元素3,…}
可變的;無序的
元素:不可變的資料;唯一的

x = {} # 空字典
s1 = set() # 空集合

s3 = {10, ‘abc’, [1, 2]} # TypeError: unhashable type: ‘list’

元素是唯一的
s4 = {10, 20, 30, 10, 10}
print(s4) # {10, 20, 30}

集合是無序的
print({1, 3, 5} == {5, 1, 3}) # True

集合的增刪改查

補充:通過for迴圈遍歷無序序列的時候,都是先將序列轉換成列表,然後遍歷列表


集合只能遍歷


集合.add(元素) - 在集合中新增指定元素
集合.update(序列) - 將序列中所有的元素新增到集合中


集合.remove(元素) - 刪除集合中指定的元素(元素不存在會報錯)
集合.discard(元素) - 刪除集合中指定的元素(元素不存在不會報錯)


先刪除原來的,再新增新的

python中的集合支援數學中的集合運算:&(交集)、|(並集)、-(差集)、^(對稱差集)、 >、<、>=, <=(判斷包含關係)

字串(str)

字串是容器型資料型別,將’’、""、’’’’’’、""""""作為容器的標誌裡面的每一個基本符號就是字串的元素
字串是不可變的(不支援增刪改)
字串是有序的(支援下標操作)
元素:引號裡面的每個基本單元就是字串的元素,又叫字元(python中只有字元的概念沒有字元對應的型別,一般直接使用長度是1的字串來表示字元)

空串
s1 = ‘’
s2 = “”
s3 = ‘’’’’’
s4 = “”""""

‘’、"" 與 ‘’’’’’、"""""“的區別
‘’、”" - 字串中不能直接換行

字串有序

普通字元
除了轉義字元以外的字元都是普通字元,普通字元在字串中表示這個符號本身,包括:漢字、數字、字母、符號、表情符號等…
‘shdj’、‘收到貨積分’、‘shd23’、’%……&*(’、‘??❀’

轉義字元
在特定的一個或者多個符號前加\讓符號具有特殊功能或者特殊意義。那麼這種帶有\字元就是轉義字元:
\n - 換行
\t - 水平製表符(相當於按一下tab鍵)
’ - 表示一個普通的單引號
" - 表示一個普通的雙引號
\ - 表示一個普通的反斜槓
注意:任意一個轉義字元長度都是1

特殊的轉義字元-編碼字元:\u四位的十六進位制數 - 表示16進位制數對應的編碼值對應的字元

字元編碼

1)什麼是字元編碼
計算機在儲存資料的時候只能存數字(存的數字二進位制補碼),為了能夠讓計算機儲存字元,我們給每一個字元都對應一個固定的數字,那麼每個字元對應的固定的數字就是這個字元的編碼值

2)字元編碼表 - 記錄字元和數字之間一一對應關係的表就是字元編碼表
常見的字元編碼表有兩種:ASCII碼錶、Unicode編碼表(python採用的是Unicode編碼表)
a. ASCII碼錶
ASCII碼錶總共有128個字元對應的編碼,主要包含的是美國的通用符號其中包括:英文標點符號、數字字元、字母字元以及其他的一些符號
ASCII碼錶中,數字字元在字母的前面,大寫字母在小寫字母的前面,大寫字母和小寫字母之間有間接

b. Unicode編碼表
Unicode編碼表包含ASCII碼錶
中文編碼範圍:4e00 ~ 9fa5

編碼字元: \u4位的16進位制編碼值

chr(編碼值) - 獲取編碼值對應的字元

ord(字元) - 獲取字元對應的編碼值(返回的是十進位制數)

字串操作

獲取字元

字串獲取字元和列表獲取元素的方法一樣

獲取單個字元
字串[下標]

字串切片
字串[:]

遍歷

加法和乘法

print(‘abc’ + ‘123’) # ‘abc123’
print(‘you see see you!’ + ‘one day day!’) # ‘you see see you!one day day!’
print(‘abc’*3) # ‘abcabcabc’

比較大小

兩個字串比較大小:比較第一對不相等的字元編碼值的大小

相關文章