第四章:Python容器

概述

什麼是容器?

容器是用於盛放元素的
由於盛有許多的元素,容器都是可以迭代遍歷的
最常用的容器包括【元組】、【列表】、【字典】、【集合】等
字符串是有序字符集,本質上也是容器
我們在對比和討論容器的特性時,最常考慮的因素有:
1、是否有序
2、是否可重複
3、如何訪問其中的元素
4、是否可以編輯
5、如何遍歷

第一節:字符串

字符串操作符

  • +,用於字符串連接
  • *,用於多次重複
    例如:
words = "sun"
words2 = "moon"

print(words + words2)
print(words * 3)

執行結果:
在這裏插入圖片描述

字符串長度

如果我們想知道一段字符串到底有多長,可以用len()進行查看,而不是一個一個數
例:

#這裏有26個字母,或者更多時,使用len()
words = "abcdefghijklmnopqrstuvwxyz"
print(len(words))

#字符串的長度,包含了空格在內
words2 = "I love you"
print(len(words2))

執行結果:
在這裏插入圖片描述

比較字符串大小

字符串之間的比較,是按當前字符集中序號的順序排列,前小後大

print("abc" > "def")  # False,按當前字符集中序號的順序排列
print("中國" > "美帝")  # False,按當前字符集中序號的順序排列

字符串截取(切片)

字符串[開始位置:結束位置:步長]
開始結束位置的原則是:含頭不含尾,即結束位置的那個字符不會被截取
步長2代表每2個取第一個,3代表每三個取第一個
步長爲-N時,代表從後向前截取,仍然是每N個取一個

例如:

mstr = "getsomething"

# 從0載取到總長度(最後)
print(mstr[0:len(mstr)])

#從0截取到第5位(注意含頭不含尾,所以以6做結束)
print(mstr[0:6])

#從0截取到倒數第4位
print(mstr[0:-3])

#從第5位截取到最後
print(mstr[5:])

#從0截取到第4位
print(mstr[:5])

#從頭截到尾
print(mstr[:])

#從0截取到最後,步長爲2
print(mstr[0::2])

#從頭截到尾,步長爲-2
print(mstr[::-2])

執行結果:
在這裏插入圖片描述

判斷有無子串

  • 使用 in 關鍵字可以判斷子串是否在大串中
  • 使用 find 函數返回子串出現的位置,如子串不存在則返回-1
  • 使用 index 函數同樣返回子串位置,但子串不存在就會報錯
    例如:
mstr = "天下武功唯快不破"

#"武功"是否在mstr裏面
print("武功" in mstr)     # True
#"武術"是否在mstr裏面
print("武術" in mstr)     # False

#在mstr裏尋找"不破"
print(mstr.find("不破"))    # 6
#在mstr裏尋找"武術"
print(mstr.find("大破"))    # -1

#在mstr裏出現""武功的下標是?
print(mstr.index("武功"))    # 2
print(mstr.index("武術"))    #此方法找不到會報錯

字符串的格式化

  • capitalize(),首字母大寫
  • title(),每個單詞的首字母大寫
  • lower(),全小寫
  • upper(),全大寫
    例如:
mStr = "hello world,hello python"

#字母全大寫
print(mStr.upper())
#字母全小寫
print(mStr.lower())
#所有單詞首字母大寫
print(mStr.title())
#僅開頭首字母大寫
print(mStr.capitalize())

執行結果:
在這裏插入圖片描述

編碼解碼

  • encode(),編碼爲字節
  • decode(),將字節解碼爲字符串,注意主語是字節而非字符串
    例如:
#例1
words = "太陽當頭照,花兒對我笑"

#以gbk字符集編碼將字符串編碼爲字節數組
wordBytes = words.encode(encoding="gbk")
print(wordBytes)

#以gbk字符集編碼將字節數組解碼爲字符串
turnBytes = wordBytes.decode(encoding="gbk")
print(turnBytes)


print("——"*20)#此處只爲分隔


例2:
words2 = "早起的鳥兒有蟲吃"

#以utf-8字符集編碼將字符串編碼爲字節數組
wordBytes2 = words2.encode(encoding="utf-8")
print(wordBytes2)

#以utf-8字符集編碼將字節數組解碼爲字符串
turnBytes2 = wordBytes2.decode(encoding="utf-8")
print(turnBytes2)

執行結果:
在這裏插入圖片描述

搜索與替換

  • find(),尋找子串位置,沒有返回-1
  • index(),尋找子串位置,沒有報錯
  • count() ,統計子串出現次數
  • replace(),替換子串爲新的字符串
    例如:
mStr = "太陽當頭照,花兒對我笑,太陽不見了"

#搜索“花兒”的位置
print(mStr.find("花兒"))

#搜索出現“花兒”的下標
print(mStr.index("花兒"))

#搜索“flower”的位置,-1表示子串不存在
print(mStr.find("flower"))

#搜索出現“flower”的下標位置,注意當子串不存在,將會報錯,而不是返-1
# print(mStr.index("flower"))    # ValueError: substring not found

print("——————————————————————————————————")#此處只爲分隔

#將“太陽”替換爲Sun,替換1處
print(mStr.replace("太陽", "Sun", 1))

#將全部“太陽”替換爲“Sun”
print(mStr.replace("太陽", "Sun"))  # fuck world,fuck python 全部hello替換爲fuck

print("——————————————————————————————————")#此處只爲分隔

#數一數子串“太陽”出現的次數
print(mStr.count("太陽"))

#在0-6位字符中,子串“太陽”出現的次數
print(mStr.count("太陽", 0, 6))  # 1 hello子串出現的次數,範圍爲0-6位字符

執行結果:
在這裏插入圖片描述

判斷頭尾與數字

  • isdigit(),判斷是否爲數字子串
  • startswith(),判斷是否以子串開頭
  • endswith(),判斷是否以子串結尾
    例如:
words = "太陽當頭照,花兒對我笑"
words2 = "3145926"

#判斷words是不是數字字符串
print(words.isdigit())            # False
#判斷words2是不是數字字符串
print(words2.isdigit())           # True

#判斷words是不是以“太陽”子串開頭
print(words.startswith("太陽"))    # True
#判斷words是不是以“Sun”子串開頭
print(words2.startswith("Sun"))   # False

#判斷words是不是以“笑”子串結尾
print(words.endswith("笑"))      # True

拆開與重組

  • split(“,”),以逗號切分子串,形成一個列表
  • join(),用分隔符連接子串,主語爲分隔符,參數爲字符串
    例如:
words = "hello,world,hello,python"
#將字符串words用“,”分割成四個字符串
print(words.split(","))

words2 = "我愛你中國"
#將字符串打散爲字符,並以-連接形成新字符串
print("-".join(words2))

執行結果:
在這裏插入圖片描述

第二節:元組

元組的特點

  • 元組是一種有序不可編輯的元素容器;
  • 可以通過下標訪問元組中的元素;
  • 其它迭代器對象(如列表、字符串等)可以通過類型強轉轉換爲元組對象;

創建元組

  • 通過( )直接賦值創建
  • 將多個值賦值給一個變量,則該變量是元組類型
    例:
#直接使用括號可創建元組
mtuple = ()
print(type(mtuple))

#元組可以通過括號直接賦值,值的類型可以多樣化(整形、浮點型、字符串、複數等)
mtuple2 = (1, 1.2, True, "hello", 3 + 4j, None)
print(mtuple2)

#將多個值賦值給一個變量,則該變量是元組類型
ytuple = 1, 1.2, True, "hello", 3 + 4j, None
print(ytuple,type(ytuple))

#指定變量個數形成的元組,可直接找到指定變量
ytuple2 = width, height = 300, 400
print(ytuple2,type(ytuple2))
print(width)

執行結果:
在這裏插入圖片描述

第三節:列表

第四節:集合

第五節:字典

第六節:

第七節:

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