17. 字符串詳解及序列類(lèi)型

字符串是我們?cè)诔绦蛑惺褂梅浅6嗟囊粋€(gè)對(duì)象奸汇,對(duì)于字符串的處理在各種編程語(yǔ)言中也是非常重要的一部分。

1. python中的字符串定義

python中的字符串春瞬,可以使用單引號(hào)山上、雙引號(hào)或者三個(gè)單引號(hào)包含的字符,都是字符串蚯舱。

s1 = '我是一個(gè)字符串'
s2 = "我也是一個(gè)字符串"
s3 = ''' 我還是一個(gè)字符串
我是能換行寫(xiě)內(nèi)容的字符串
'''
s4 = "多個(gè)字符串"*3   # 可以定義將字符串重復(fù)3次并且拼接

注意:python2中字符串字面量對(duì)應(yīng)8位字符或者面向字節(jié)的數(shù)據(jù)改化,不能完全支持unicode字符串。這樣的情況枉昏,如果要使用漢字陈肛,可以通過(guò)如下方式解決

  • 在py文件的首行,添加 # -*- coding:utf-8 -*-的注釋?zhuān)瑏?lái)標(biāo)識(shí)當(dāng)前文件是使用utf-8編碼
  • 在py中兄裂,定義的字符串句旱,可以在前面添加一個(gè)字符u來(lái)標(biāo)識(shí)該字符串是使用unicde進(jìn)行編碼的阳藻,如str = u"我是字符串"

2. 字符串作為模塊、類(lèi)谈撒、函數(shù)的文檔注釋

字符串你可以放在模板腥泥,類(lèi)或者函數(shù)的第一行,作為對(duì)函數(shù)的描述作用出現(xiàn)啃匿,可以通過(guò)木塊蛔外、類(lèi)、函數(shù)的doc屬性進(jìn)行調(diào)用查看溯乒。

def printName(msg):
    "這是一個(gè)用來(lái)打印給定信息的函數(shù)"
    print("您要打印的信息:" + msg)

printName.__doc__
------------------------------
執(zhí)行結(jié)果:
"這是一個(gè)用來(lái)打印給定信息的函數(shù)"

模塊夹厌、類(lèi)或者函數(shù)的文檔注釋非常重要,一般情況下是對(duì)于當(dāng)前要使用的模塊裆悄、類(lèi)或者函數(shù)使用方式的最直接的描述尊流,開(kāi)發(fā)人員在使用的時(shí)候可以通過(guò)木塊、類(lèi)或者函數(shù)的doc屬性來(lái)查看使用方式灯帮。

2. 字符串作為序列支持的操作方法

  • s[i] : 返回序列中下標(biāo)為i的元素

  • s[i:j]:返回序列中下標(biāo)從i到j(luò)之間的數(shù)據(jù)崖技,這樣截取數(shù)據(jù)也成為切片

  • s[i:j:stride]:返回一個(gè)擴(kuò)展的切片

  • len(s):返回序列中元素?cái)?shù)據(jù)的數(shù)量

  • min(s):返回序列中的最小值

  • max(s):返回序列中的最大值

  • sum(s [, initial]):返回序列中所有數(shù)據(jù)的和

  • all(s):檢查序列中所有的數(shù)據(jù)是否為T(mén)rue

  • any(s):檢查序列中任意項(xiàng)是否為T(mén)rue

  • capitalize() 字符串首字符大寫(xiě)

  • isupper() 字符串是否全部大寫(xiě)

  • upper() 字符串所有字符大寫(xiě)

  • islower() 字符串是否所有字符小寫(xiě)

  • lower() 字符串中所有字符小寫(xiě)

  • index(str [,start, end]) 獲取指定字符在字符串中出現(xiàn)的位置

  • t.join(s):使用字符串t來(lái)拆分字符串s,或者將一個(gè)列表s中的字符串元素按照使用t連接

  • replace(old, new):將指定字符串中的old字符钟哥,使用新字符new進(jìn)行替換

  • split(sep, max):將字符串使用指定的字符sep進(jìn)行拆分迎献,max是拆分次數(shù),返回一個(gè)列表

# 字符串也是一種序列對(duì)象
# 定義一個(gè)字符串
strx = "hello python!"
# 獲取下標(biāo)為7的數(shù)據(jù)
strx[7]
# 執(zhí)行結(jié)果:y

# 獲取下標(biāo)從2到7的切片
strx[2:5]
# 執(zhí)行結(jié)果:"llo p"

# 獲取下標(biāo)從2到9的切面腻贰,步長(zhǎng)為2
strx[2:9:2]
# 執(zhí)行結(jié)果: "lopt"

# 反向切片
strx[9:2:-2]
# 執(zhí)行結(jié)果:"hy l"

# 獲取字符串中最小的數(shù)據(jù)
strx(str)
# 執(zhí)行結(jié)果:" "

# 獲取字符串中最大的數(shù)據(jù)
strx(str)
# 執(zhí)行結(jié)果:w

# 按照首字母大寫(xiě)的方式輸出數(shù)據(jù)
strx.capitalize()
# 執(zhí)行結(jié)果:Hello python!

# 判斷字符串是否全部大寫(xiě)和轉(zhuǎn)換成大寫(xiě)
strx.isupper()
strx.upper()
# 執(zhí)行結(jié)果:False, HELLO PYTHONE!

# 判斷字符串是否全部小寫(xiě)和轉(zhuǎn)換成小寫(xiě)
strx.islower()
strx.lower()
# 執(zhí)行結(jié)果:True, hello python!

# 獲取字符o的位置
strx.index("o")
strx.index("o", 5)
# 執(zhí)行結(jié)果:4吁恍, 10

# 替換字符串中的所有的l為x
strx.replace("o", "x")
# 執(zhí)行結(jié)果:hexxo python!

# 拆分字符串為列表進(jìn)行使用
strx.split("o")
# 執(zhí)行結(jié)果:["hell", "pyth", "n!"]
strx.split("o", 1)
# 執(zhí)行結(jié)果:["hell", "python!"]

# 創(chuàng)建一個(gè)列表
lix = ["h", "e", "l", "l", "o"]
# 執(zhí)行join()方法,將列表數(shù)據(jù)拼接字符串
"".join(lix)
# 執(zhí)行結(jié)果:hello

# 創(chuàng)建一個(gè)列表
lix = [1,2,3,4,5]
# 計(jì)算序列列表中所有元素的和

3. 其他序列對(duì)象中常見(jiàn)的函數(shù)操作

python中除了字符串播演,其他的常見(jiàn)序列對(duì)象就是列表冀瓦、元組、集合写烤、字典
列表的操作

  • 列表的操作
  • append(x):用于在列表的末尾追加元素x
  • clear():用于清空列表中的所有數(shù)據(jù)
  • copy():用于復(fù)制一份列表中的數(shù)據(jù)
  • count(x):用于查詢(xún)統(tǒng)計(jì)在列表中指定的元素x出現(xiàn)了多少次
  • extend():用于將一個(gè)列表中的數(shù)據(jù)從另一個(gè)指定的列表中繼承過(guò)來(lái)
  • index(x):用于查詢(xún)指定的元素x在列表中出現(xiàn)的位置索引
  • insert(index, ele):用于在指定的位置index增加一個(gè)元素ele
  • pop():用于刪除最后一個(gè)元素
  • remove(x):用于在列表中刪除指定的元素x
  • reverse():用于反轉(zhuǎn)列表中的所有數(shù)據(jù)
  • sort():用于列表中的數(shù)據(jù)進(jìn)行自然排序
# 創(chuàng)建一個(gè)列表
lix = ["hello", "python"];
# 執(zhí)行列表的方法
lix.append("大牧")   # 執(zhí)行結(jié)果:lix = ["hello", "python", "大牧"]
liy = lix.copy()      # 執(zhí)行結(jié)果: liy = ["hello", "python", "大牧"]
liy.clear()    # 執(zhí)行結(jié)果: liy = []
lix.count("hello")        # 執(zhí)行結(jié)果: 1
liy.extend(lix)       # 執(zhí)行結(jié)果: liy = ["hello", "python", "大牧"]
lix.index("python")     # 執(zhí)行結(jié)果:1
lix.insert(1, "莫邪")     # 執(zhí)行結(jié)果: lix = ["hello", "莫邪",  "python", "大牧"]
lix.pop()            # 執(zhí)行結(jié)果:lix = ["hello", "莫邪",  "python"]
lix.remove("莫邪")  # 執(zhí)行結(jié)果:lix = ["hello", "python"]
lix.sort()      # 執(zhí)行結(jié)果:lix = ["hello", "python"]
  • 元組的操作

元組一旦聲明常見(jiàn)翼闽,不允許進(jìn)行修改

  • count(x) 統(tǒng)計(jì)元組中指定的元素x出現(xiàn)的次數(shù)
  • index(x) 統(tǒng)計(jì)元素中指定的元素x出現(xiàn)的位置
t = ("張小凡", "碧瑤", "陸雪琪")
t.count("張小凡")    # 執(zhí)行結(jié)果:1
t.index("陸雪琪")    # 執(zhí)行結(jié)果:2
  • 集合的操作

集合中不會(huì)存儲(chǔ)重復(fù)數(shù)據(jù),同時(shí)集合中存儲(chǔ)的數(shù)據(jù)是無(wú)序的

  • add()

  • clear()

  • copy()

  • difference()

  • difference_update()

  • discard()

  • intersection()

  • intersection_update()

  • isdisjoint()

  • issubset()

  • issuperset()

  • pop()

  • remove()

  • symmetric_difference()

  • symmetric_difference_update()

  • union()

  • update()

  • 字典的操作

字典中的數(shù)據(jù)是以key:value的形式進(jìn)行數(shù)據(jù)存儲(chǔ)的

  • clear()
  • copy()
  • fromkeys()
  • get()
  • items()
  • keys()
  • pop()
  • popitem()
  • setdefault()
  • update()
  • values()

大牧莫邪.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洲炊,一起剝皮案震驚了整個(gè)濱河市感局,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌暂衡,老刑警劉巖询微,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狂巢,居然都是意外死亡撑毛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)唧领,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)藻雌,“玉大人雌续,你說(shuō)我怎么就攤上這事”囊桑” “怎么了西雀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵萨驶,是天一觀的道長(zhǎng)歉摧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)腔呜,這世上最難降的妖魔是什么叁温? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮核畴,結(jié)果婚禮上膝但,老公的妹妹穿的比我還像新娘。我一直安慰自己谤草,他們只是感情好跟束,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著丑孩,像睡著了一般冀宴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上温学,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天略贮,我揣著相機(jī)與錄音,去河邊找鬼仗岖。 笑死逃延,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轧拄。 我是一名探鬼主播揽祥,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼檩电!你這毒婦竟也來(lái)了盔然?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤是嗜,失蹤者是張志新(化名)和其女友劉穎愈案,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鹅搪,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡站绪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丽柿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恢准。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡魂挂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馁筐,到底是詐尸還是另有隱情涂召,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布敏沉,位于F島的核電站果正,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏盟迟。R本人自食惡果不足惜秋泳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望攒菠。 院中可真熱鬧迫皱,春花似錦、人聲如沸辖众。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凹炸。三九已至戏阅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間还惠,已是汗流浹背饲握。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚕键,地道東北人救欧。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像锣光,于是被迫代替她去往敵國(guó)和親笆怠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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

  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)搂漠。通常情況下迂卢,聲明一個(gè)變量只保存一個(gè)值是遠(yuǎn)遠(yuǎn)不夠的,我們需要將一組...
    小黑y99閱讀 65,191評(píng)論 0 9
  • http://python.jobbole.com/85231/ 關(guān)于專(zhuān)業(yè)技能寫(xiě)完項(xiàng)目接著寫(xiě)寫(xiě)一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,557評(píng)論 1 118
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)而克,斷路器靶壮,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 年前在某貓上買(mǎi)了一本0差評(píng)的書(shū),叫《非暴力溝通》≡逼迹現(xiàn)在越發(fā)覺(jué)得說(shuō)話是門(mén)藝術(shù)腾降,不懂說(shuō)話栽坑已經(jīng)不是一年兩年能說(shuō)...
    Wind_金閱讀 260評(píng)論 0 1
  • 記得看過(guò)一個(gè)搞笑視頻,一個(gè)孩子倒在地上耍賴(lài)大哭碎绎,媽媽故意不理他螃壤,走到另外一個(gè)屋子里。孩子立刻收住哭聲混卵,跟著走到...
    夏禾平閱讀 197評(píng)論 0 1