python 序列(字符串祝旷、字符串、元組嘶窄、集合怀跛、字典)

運行環(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

\color{blue}{四大天王來咯地淀!}

列表(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ù)
    \color{red}{注意:列表名x=列表名x.函數(shù)名()危号,這么寫是錯的牧愁,無法返回列表。}

    1. 列表名.append(x)
      追加整體x(一整個x連括號帶內(nèi)容插入)到列表尾部外莲。

    2. 列表名.insert(插入位置的索引,x)
      在列表你要要的位置插入個體x(x若數(shù)量>1猪半,把每一項拆分,再進行插入)偷线,后面所有元素后移并索引+1磨确。
      索引的大小若大于列表長度,則表示在:列表最末尾追加x声邦;若為小于列表長度相反數(shù)的負數(shù)乏奥,則表示:在列表最開頭插入x。

    3. 列表名.extend([想要追加的列表])
      將另一個列表中的所有元素全部追加到當前列表的最末尾亥曹。(恕我直言邓了,對初學(xué)者而言,直接用‘+’聯(lián)取不香嗎媳瞪?)

    4. 列表名.remove(x)
      刪除第一個值為x的元素骗炉,后面所有元素前移并索引-1。

    5. 列表名.pop(想要刪除的元素相應(yīng)索引)
      刪除并返回你想要刪除的一個元素蛇受。若不指定索引則默認為-1(最后一個元素)句葵。
      刪除中間的元素后,后面所有元素前移并索引-1。

    6. 列表名.index(x)
      返回列表中第一個值為x的索引乍丈。

    7. 列表名.count(x)
      返回x在列表中出現(xiàn)的次數(shù)剂碴。

    8. 列表名.reverse() 和 list(reversed(列表名))
      對列表所有元素進行逆序排列。
      但要注意list(reversed(列表名))僅僅返回一個逆序排列的值轻专,實際上列表并沒有改變忆矛,可以將值賦給另外一個列表(自己本身或其他別人都行)。

    9. 列表名.sort()
      對列表進行排序铭若,默認為從小到大排序洪碳。
      若想要從大到小排序,改成 列表名.sort(reverse=True) 即可叼屠。

    10. sorted(列表名)
      產(chǎn)生一個從小到大排序的新列表瞳腌,與上面一條不同的是:sorted(a)產(chǎn)生的是一個新列表,而a.sort()是對a直接排序了镜雨。

    11. 列表名.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ù)
    1. len(tuple):計算元組元素個數(shù)。
    2. max(tuple):返回元組中元素最大值。
    3. min(tuple):返回元組中元素最小值叹话。
    4. 新元組名=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é)上的知識進行理解沒毛病)碟渺。

  • 增添刪改
    不支持使用‘+’操作符和“*”操作符的使用鲜锚。

    1. 字典名.add(x) 可以增添新元素;但若該元素已經(jīng)存在苫拍,則此操作無效芜繁。
    2. 字典名.pop() 可以隨機刪除并返回集合中的一個元素。
    3. 字典名.remove(x) 可以刪除集合中的元素绒极。
    4. 字典名.discard(x) 可以從集合中刪除一個特定元素骏令。
  • 訪問
    不支持索引,因為是無序的垄提,所以每次每次輸出時元素的排列順序可能都不相同榔袋。

  • 去重
    因為其元素不允許重復(fù),集合有過濾重復(fù)元素的功能塔淤≌可以將其他序列結(jié)構(gòu)轉(zhuǎn)化為集合,生成的新集合就會自動將內(nèi)重復(fù)的元素刪除高蜂,然后自動排序聪黎。

  • 集合運算

  1. 使用 集合名=set('字符串') 可以將字符串中的各個字母拆成集合,然后去重备恤,并且他會自動從大到小進行排序稿饰。
  2. 允許 集合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ù)

    1. 字典名.get('鍵','默認值')
      訪問鍵對應(yīng)的"值"廊佩。若值不存在,返回指定的默認值(默認值無要求可不寫靖榕。但在值不存在和無默認值的雙重條件下标锄,不會有任何事發(fā)生)。

    2. 字典名.keys()
      返回一個顯示字典所有鍵的列表茁计。

    3. 字典名.values()
      返回一個顯示字典所有值的列表料皇。

    4. 字典名.update(想要添加的字典名/內(nèi)容)
      合并字典,將另一個字典增添到當前字典中星压。

    5. 字典名.pop('鍵')
      從字典中刪除指定的鍵值對践剂,必須有鍵名這個參數(shù)。

    6. 字典名.popitem()
      從字典中隨機刪除并返回一個鍵值對娜膘,若字典已空才返回異常逊脯。

    7. 字典名.clear()
      清空字典,注意與del函數(shù)的刪除字典有所不同竣贪。

    8. 新字典名=字典名.copy()
      克隆舊字典的內(nèi)容至新字典中军洼。

    9. 字典1.update(字典2)
      將字典2的內(nèi)容增加到字典1中巩螃。

    10. 字典名.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ù)之外,還可以這么做:

  1. 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}
  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ū)指正!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揍鸟,一起剝皮案震驚了整個濱河市兄裂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜈亩,老刑警劉巖懦窘,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稚配,居然都是意外死亡畅涂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門道川,熙熙樓的掌柜王于貴愁眉苦臉地迎上來午衰,“玉大人立宜,你說我怎么就攤上這事‰叮” “怎么了橙数?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帅戒。 經(jīng)常有香客問我灯帮,道長,這世上最難降的妖魔是什么逻住? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任钟哥,我火速辦了婚禮,結(jié)果婚禮上瞎访,老公的妹妹穿的比我還像新娘腻贰。我一直安慰自己,他們只是感情好扒秸,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布播演。 她就那樣靜靜地躺著,像睡著了一般伴奥。 火紅的嫁衣襯著肌膚如雪写烤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天渔伯,我揣著相機與錄音顶霞,去河邊找鬼。 笑死锣吼,一個胖子當著我的面吹牛选浑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播玄叠,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼古徒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读恃?” 一聲冷哼從身側(cè)響起隧膘,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寺惫,沒想到半個月后疹吃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了租漂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磺陡。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖友存,靈堂內(nèi)的尸體忽然破棺而出缤剧,到底是詐尸還是另有隱情学辱,我是刑警寧澤核畴,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布膝但,位于F島的核電站,受9級特大地震影響谤草,放射性物質(zhì)發(fā)生泄漏跟束。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一丑孩、第九天 我趴在偏房一處隱蔽的房頂上張望泳炉。 院中可真熱鬧,春花似錦嚎杨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至古拴,卻和暖如春箩帚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黄痪。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工紧帕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桅打。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓是嗜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挺尾。 傳聞我的和親對象是個殘疾皇子鹅搪,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容