運行環(huán)境:python3.8 Anaconda
字符串
在python中,單個字符就是字符串柄冲。
字符串不可改變吻谋,使用單引號' ',雙引號" ",三引號'" "'(三個單引號)作為界定符现横。
在需要使用單引號時使用雙引號或是使用轉(zhuǎn)移字符表示(\')漓拾。
在需要使用反斜杠\ 時,因為反斜杠+后面的字母戒祠,會使系統(tǒng)認為你想要引用轉(zhuǎn)義字符骇两,可以在等于號后面加上r/R,表示引用原始字符串姜盈。
在需要自由使用單引號和雙引號時脯颜,可以使用三引號。
-
訪問
使用整數(shù)作為索引來訪問其中的元素:
正整數(shù) 從左到右贩据,0表示第一個元素,1表示第二個元素闸餐,2表示第三個元素……
負整數(shù) 從右到左饱亮,情況完全相反,-1表示倒數(shù)第一個元素舍沙,-2表示倒數(shù)第二個元素近上,-3表示倒數(shù)第三個元素……可以用切片訪問。
增添連接
字符串允許‘+’操作符和‘*’操作符的使用拂铡,生成一個新字符串壹无。
在連接時也可以使用 字符串名='元素1''元素2'+…… 的形式
將‘+’操作符去掉也可以連接葱绒,僅僅只是適用字符串常量。
>>> print('i'+' am', 'bob'*3)
i am bobbobbob
>>> a='abc''123'
>>> a
'abc123'
- 字符串中的判斷操作符:in斗锭,not in
>>> str = "Hello world"
>>> "He" in str
True
>>> "Me" not in str
True
列表(list)
列表名=[元素1,元素2,元素3……]
所有元素放置于方括號[ ]中,元素間使用逗號‘,’分離岖是,元素可以是任意類型帮毁。
- 增添刪改
允許使用‘+’操作符和“*”操作符的使用,生成一個新列表豺撑。
>>> a=[1,23,4]
>>> b=a+[5,6,7]
>>> c=a*2
>>> b
[1,23,4,5,6,7]
>>> c
[1,23,4,1,23,4]
因為當列表增加或刪除元素時烈疚,列表對象會自動進行內(nèi)存的擴展或收縮,從而保證相鄰元素之間沒有縫隙聪轿。所以應(yīng)盡量從列表尾部進行元素的追加或刪除操作爷肝,不然在后續(xù)元素索引改變的情況下,你的很多操作都會出錯陆错。
訪問
支持雙向索引(用正整數(shù)訪問還是負整數(shù)訪問都沒有問題5婆住)。-
列表常用函數(shù)
列表名.append(x)
追加整體x(一整個x連括號帶內(nèi)容插入)到列表尾部外莲。列表名.insert(插入位置的索引,x)
在列表你要要的位置插入個體x(x若數(shù)量>1猪半,把每一項拆分,再進行插入)偷线,后面所有元素后移并索引+1磨确。
索引的大小若大于列表長度,則表示在:列表最末尾追加x声邦;若為小于列表長度相反數(shù)的負數(shù)乏奥,則表示:在列表最開頭插入x。列表名.extend([想要追加的列表])
將另一個列表中的所有元素全部追加到當前列表的最末尾亥曹。(恕我直言邓了,對初學(xué)者而言,直接用‘+’聯(lián)取不香嗎媳瞪?)列表名.remove(x)
刪除第一個值為x的元素骗炉,后面所有元素前移并索引-1。列表名.pop(想要刪除的元素相應(yīng)索引)
刪除并返回你想要刪除的一個元素蛇受。若不指定索引則默認為-1(最后一個元素)句葵。
刪除中間的元素后,后面所有元素前移并索引-1。列表名.index(x)
返回列表中第一個值為x的索引乍丈。列表名.count(x)
返回x在列表中出現(xiàn)的次數(shù)剂碴。列表名.reverse() 和 list(reversed(列表名))
對列表所有元素進行逆序排列。
但要注意list(reversed(列表名))僅僅返回一個逆序排列的值轻专,實際上列表并沒有改變忆矛,可以將值賦給另外一個列表(自己本身或其他別人都行)。列表名.sort()
對列表進行排序铭若,默認為從小到大排序洪碳。
若想要從大到小排序,改成 列表名.sort(reverse=True) 即可叼屠。sorted(列表名)
產(chǎn)生一個從小到大排序的新列表瞳腌,與上面一條不同的是:sorted(a)產(chǎn)生的是一個新列表,而a.sort()是對a直接排序了镜雨。列表名.replace(被查找詞,替換詞)
用于查找后替換嫂侍,若被查找詞不存在,原列表不會發(fā)生改變荚坞;若存在挑宠,全部的被查找詞都被替換為替換詞,生成一個新列表颓影。
元組(tuple)
元組名=(元素1,元素2,元素3……)
所有元素放置于圓括號( )中各淀,元素間使用逗號‘,’分離。若只有一個元素诡挂,元素后的逗號不能省略碎浇。元素固定不變,但可以是任意類型璃俗。
>>> a=(1,)
>>> a
(1,)
>>> b=(2)
>>> b #(2)是整形2奴璃,但是(2,)就是元組
2
- 增添刪改
允許使用‘+’操作符和“*”操作符的使用,生成一個新的元組城豁。
但因為元組屬于不可變序列苟穆,元素固定不變,所以不可以直接修改元組中元素的值唱星,也無法修改和刪除元素雳旅。致使在列表中能修改和刪除的相應(yīng)函數(shù),在元組內(nèi)無法使用间聊。切片操作也是岭辣,只能進行訪問,無法修改刪除甸饱。
- 訪問
與列表相同支持雙向索引(可以使用正整數(shù)/負整數(shù))
>>> a=(1, 2, 3, 4, 5, 6)
>>> print(a[0], a[3:5])
1 (4, 5)
>>> a[0]=3 # 修改元組元素的操作是非法的
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
a[0]=3
TypeError: 'tuple' object does not support item assignment
- 元組常用函數(shù)
- len(tuple):計算元組元素個數(shù)。
- max(tuple):返回元組中元素最大值。
- min(tuple):返回元組中元素最小值叹话。
- 新元組名=tuple(列表名):將列表轉(zhuǎn)換為元組偷遗。
- 訪問二元元組(二維)
>>> a=(1,2,3)
>>> b=('a','b','c')
>>> c=(a,b) #將a看作是第一個元素;b是第二個元素
>>> print(c[1][2]) #序列中第一個元素中的第二個小元素
c
- 賦值
雖然不能改變元素驼壶,但是卻可以把元素賦給別的值:使用解包氏豌。
>>> x=(1,2,3)
>>> a,b,c = user #變量個數(shù)要等于元組的長度
>>> a
1
集合(set)
集合名={元素1,元素2,元素3……}
所有元素放置于大括號{ }中元素間使用逗號‘,’分離,其中的元素不允許重復(fù)热凹,且只能使用不可變數(shù)據(jù)(數(shù)字泵喘、字符串、元組等)般妙。
建立一個空集合必須使用 集合名=set() 而非 集合名={} 纪铺。因為{}是用來創(chuàng)建一個空字典。
跟數(shù)學(xué)上的集合差不多概念(完全可以用數(shù)學(xué)上的知識進行理解沒毛病)碟渺。
-
增添刪改
不支持使用‘+’操作符和“*”操作符的使用鲜锚。- 字典名.add(x) 可以增添新元素;但若該元素已經(jīng)存在苫拍,則此操作無效芜繁。
- 字典名.pop() 可以隨機刪除并返回集合中的一個元素。
- 字典名.remove(x) 可以刪除集合中的元素绒极。
- 字典名.discard(x) 可以從集合中刪除一個特定元素骏令。
訪問
不支持索引,因為是無序的垄提,所以每次每次輸出時元素的排列順序可能都不相同榔袋。去重
因為其元素不允許重復(fù),集合有過濾重復(fù)元素的功能塔淤≌可以將其他序列結(jié)構(gòu)轉(zhuǎn)化為集合,生成的新集合就會自動將內(nèi)重復(fù)的元素刪除高蜂,然后自動排序聪黎。集合運算
- 使用 集合名=set('字符串') 可以將字符串中的各個字母拆成集合,然后去重备恤,并且他會自動從大到小進行排序稿饰。
- 允許 集合1-集合2 求去除集合1元素后的新集合2,注意只能長的減去短的露泊,不能短減長喉镰。
集合1|集合2 求兩集合相加的元素——并集。
集合1&集合2 求兩集合提取的公共元素——交集惭笑。
集合1^集合2 求提取兩個集合不同時存在的元素——補集等操作符的使用侣姆。
>>> a=set('hallowword') #將字符串拆成集合后去重生真、排序
>>> a
{'a', 'd', 'h', 'l', 'o', 'r', 'w'}
>>> b=set('areyouok')
>>> b
{'a', 'e', 'k', 'o', 'r', 'u', 'y'}
>>> a-b # 從a中去除b的元素
{'d', 'h', 'l', 'w'}
>>> a|b # a和b的并集
{'a', 'd', 'e', 'h', 'k', 'l', 'o', 'r', 'u', 'w', 'y'}
>>> a&b #提取 a和b的公共元素(交集)
{'a', 'o', 'r'}
>>> a^b #提取 a和b中不同時存在的元素(交集的補集,也叫對稱差)
{'d', 'e', 'h', 'k', 'l', 'u', 'w', 'y'}
字典(dict)
字典名={'鍵1':'值1','鍵2':'值2','鍵3':'值3'……}捺宗;鍵(key)柱蟀,值(value)。
所有元素放置于大括號{ }中蚜厉,元素間使用逗號‘,’分離长已,元素形式為“鍵:值”。
鍵與值
鍵不允許重復(fù)昼牛,且只能使用不可變數(shù)據(jù)(數(shù)字术瓮、字符串、元組等)贰健;但值允許重復(fù)胞四,且允許是任意類型。增添刪改
不支持使用‘+’操作符和“*”操作符的使用霎烙。
字典名['鍵']='新值'表示當該“鍵”存在時撬讽,修改該“鍵”對應(yīng)的值;若不存在悬垃,則表示增添一個新的“鍵:值”元素游昼。
需要刪除字典中指定元素,可以使用del命令(del 字典名['鍵'])尝蠕。
>>> x={'a':1,'b':2,'c':3}
>>> x['b']='10'
>>> x['d']=3
>>> x
{'a': 1, 'b': '10', 'c': 3, 'd': 3}
>>> del x['c']
>>> x
{'a': 1, 'b': '10', 'd': 3}
訪問
鍵與值之間表示一種映射關(guān)系烘豌,“鍵”在這里作為一種特別的下標形式,可以訪問相應(yīng)的“值”看彼。-
字典常用函數(shù)
字典名.get('鍵','默認值')
訪問鍵對應(yīng)的"值"廊佩。若值不存在,返回指定的默認值(默認值無要求可不寫靖榕。但在值不存在和無默認值的雙重條件下标锄,不會有任何事發(fā)生)。字典名.keys()
返回一個顯示字典所有鍵的列表茁计。字典名.values()
返回一個顯示字典所有值的列表料皇。字典名.update(想要添加的字典名/內(nèi)容)
合并字典,將另一個字典增添到當前字典中星压。字典名.pop('鍵')
從字典中刪除指定的鍵值對践剂,必須有鍵名這個參數(shù)。字典名.popitem()
從字典中隨機刪除并返回一個鍵值對娜膘,若字典已空才返回異常逊脯。字典名.clear()
清空字典,注意與del函數(shù)的刪除字典有所不同竣贪。新字典名=字典名.copy()
克隆舊字典的內(nèi)容至新字典中军洼。字典1.update(字典2)
將字典2的內(nèi)容增加到字典1中巩螃。字典名.items()
將字典里的元素(鍵值對)轉(zhuǎn)化為元組作為列表的一個元素。
將字典轉(zhuǎn)化為元組作為元素的一個列表匕争。
>>> d={'a':1, 'b':2, 'c':3}
>>> x=d.items()
>>> print(x)
dict_items([('a',1),('b',2),('c',3)])
>>> list(x)
[('a',1),('b',2),('c',3)]
上面的過程也可以用類型轉(zhuǎn)換換回牺六,即這樣形式的元組列表也可以初始化成字典:
>>> x=[('a',1),( 'b',2),( 'c',3)]
>>> y=dict(x)
>>> print(y)
[('a',1),('b',2),('c',3)]
-
排序
1.按“鍵”排序
sorted(字典名.items(),key=lambda e:e[0],reverse=True)表示按鍵從大到小排列。
把True改成False,就表示按鍵從小到大排列汗捡。2.按“值”排序
sorted(字典名.items(),key=lambda e:e[1],reverse=True)表示按值從大到小排列。
把True改成False,就表示按值從小到大排列畏纲。因為字典的items()函數(shù)返回的是一個列表扇住,列表的每一個元素都是一個鍵和值相應(yīng)組成的元組。所以此函數(shù)返回的值是一個元組組成的新列表盗胀。
合成艘蹋、創(chuàng)建一個新字典
除了用上面的update函數(shù)之外,還可以這么做:
- fromkeys函數(shù)用于創(chuàng)建一個新字典
新字典名=dict.fromkeys(seq, value)
以序列 seq 中元素做字典的鍵票灰;value 為字典所有鍵對應(yīng)的初始值,可以不寫女阀。
>>> a=('name', 'age', 'sex')
>>> b=dict.fromkeys(a) #給字典鍵賦值來自seq(a)
>>> b #因為僅有鍵,沒有value屑迂,所以顯示鍵值為默認值:空None
{'name': None, 'age': None, 'sex': None}
>>> c=dict.fromkeys(a, 1) #給字典鍵值對賦值浸策,這里假設(shè)都賦1
>>> c
{'name': 1, 'age': 1, 'sex': 1}
- format函數(shù)將列表合成新字典。
原理就是每次從name中取一個姓名記為n1惹盼,再從tel中取一個號碼記為t1庸汗,再把n1和t1組成鍵值對n1:t1,成為字典Tellbook中的一個元素手报,如此循環(huán)蚯舱,就全部構(gòu)成了字典的元素。
>>> name=["Bob","Jeny","Holly","Anna","Ai","Green"]
>>> age=[20,16,84,94,52,67]
>>> a={} #創(chuàng)建一個空字典
>>> for i in range(len(name)):
x="{}".format(name[i]) #從name中取一個姓名
y="{}".format(age[i]) #從tel中取一個電話
a[x]=y
#再把d2這個號碼賦值給字典Tellbook的d1鍵
>>> print(a)
{'Bob': '20', 'Jeny': '16', 'Holly': '84', 'Anna': '94', 'Ai': '52', 'Green': '67'}
這些是我學(xué)python時整理的學(xué)習(xí)筆記掩蛤,所以如果有出錯或者是不完善的地方枉昏。
歡迎在評論區(qū)指正!