天天看點

python資料容器之清單、元組、字元串

資料容器分為5類,分别是:

清單(list)、元組(tuple)、字元串(str)、集合(set)、字典(dict)

list

#字面量

[元素1,元素2,元素3,……]

#定義變量

變量名稱 = [元素1,元素2,元素3,……]

#定義空清單

變量名稱 = []

變量名稱 = list()

清單的方法

插入元素,删除元素,清空清單,修改元素,統計元素個數等

在python中,如果将函數定義為class的成員,那麼函數會稱之為:方法

1.查詢功能

文法:清單.index(元素)

統計清單内,有多少元素

文法:len(清單)

2.修改功能

文法:清單[下标] = 值

3.修改功能

插入元素

文法:清單.insert(下标,元素)

追加元素

文法1:清單.append(元素),将指定元素,追加到清單的尾部

文法2:清單.extend(其他資料容器),将其他資料容器的内容取出,依次追加到清單尾部

删除元素

文法1:del清單[下标]

文法2:清單.pop(下标)

删除某元素在清單中的第一個比對項

文法:清單.remove(元素)

清空清單内容

文法:清單.clear()

統計某元素在清單内的數量

文法:清單.count(元素)

練習案例:常用功能練習

有一個清單,内容是:[21,25,21,23,22,20],記錄的是一批學生的年齡

請通過清單的功能(方法),對其進行

1.定義這個清單,并用變量接收它

2.追加一個數字31,到清單的尾部

3.追加一個新清單[29,33,30],到清單的尾部

4.取出第一個元素(應是:21)

5.取出最後一個元素(應是:31)

6.查找元素31,在清單中的下标位置

list = [21,25,21,23,22,20]
list.append(31)
list.extend([29,33,30])
print(f"從清單中取出來第一個元素,應該是21,實際上是:{list[0]}")
print(f"從清單中取出來最後一個元素,應該是30,實際上是:{list[-1]}")
print(f"元素31在清單中的下标位置是:{list.index(31)}")
print(f"最後清單的内容是:{list}")           

運作:

python資料容器之清單、元組、字元串

練習案例:取出清單内的偶數

定義一個清單,内容是:[1,2,3,4,5,6,7,8,9,10]

1.周遊清單,取出清單内的偶數,并存入一個新的清單對象中

2.使用while循環和for循環各操作一次

提示:

1.通過if判斷來确認偶數

2.通過清單的append方法,來增加元素

#定義清單,用list接收它
list = [1,2,3,4,5,6,7,8,9,10]
#定義一個空清單,用于接收偶數清單
my_list=[]
my_list2=[]
n = 0

#用for循環清單
for element in list:
    if element % 2 == 0:
        my_list.append(element)

print(f"通過for循環,從清單:{list}中取出偶數,組成新的清單{my_list}")

#用while循環清單
while n < len(list):
    element = list[n]
    if element % 2 == 0:
        my_list2.append(element)
    n += 1

print(f"通過while循環,從清單:{list}中取出偶數,組成新的清單{my_list2}")
           

運作:

python資料容器之清單、元組、字元串

元組

#定義元組字面量

(元素,元素,……元素)

#定義元組變量

變量名稱=(元素,元素,……元素)

#定義空元組

變量名稱=()

變量名稱=tuple()

練習案例:元組的基本操作

定義一個元組,内容是:(‘小蘭花’,11,[‘footba’,‘music’]),記錄的是一個學生的資訊(姓名、年齡、愛好)

請通過元組的功能(方法),對其進行

1.查詢其年齡所在的下标位置

2.查詢學生的姓名

3.删除學生愛好中的football

4.增加愛好:coding到愛好list内

#定義一個元組記錄學生的資訊
tuple = ('小蘭花',11,['football','music'])
#查詢年齡所在的下标位置
print(f"年齡所在的下标位置是:{tuple.index(11)}")
#查詢學生的姓名
name = tuple[0]
print(f"姓名為:{name}")
#删除愛好中的football
del tuple[2][0]
#增加愛好:coding到愛好list内
tuple[2].append('coding')
print(f"現在的元組是:{tuple}")           

運作:

python資料容器之清單、元組、字元串

字元串

查找特點字元串的下标索引值

文法:字元串.index(字元串)

字元串的替換

文法:字元串.replace(字元串1,字元串2)

功能:将字元串内的全部字元串1,替換為字元串2

注意:不是修改字元串本身,而是得到了一個新字元串哦

字元串的分割

文法:字元串.split(分隔符字元串)

功能:按照指定的分隔符字元串,将字元串劃分為多個字元串,并存入清單對象中

注意:字元串本身不變,而是得到了一個清單對象

字元串的規整操作(去前後空格)

文法:字元串.strip()

字元串的規整操作(去前後指定字元串)

文法:字元串.strip(字元串)

統計字元串内某字元串的出現次數

文法:字元串.count(字元串)

統計字元串的字元個數

文法:len(字元串)

練習案例:分割字元串

給定一個字元串:“nitty is a nauty boy"

1.統計字元串内有多少個“ty“字元

2.将字元串内的空格,全部替換為字元:“|”

3.并按照“|”進行字元串分割,得到清單

提示:

count replace split

#定義字元串
my_str = "nitty is a nauty boy"
#統計字元串内有多少個“ty“字元
count = my_str.count("ty")
print(f"字元串nitty is a nauty boy中有:{count}個ty字元")
#将字元串内的空格,全部替換為字元:“|”
new_str = my_str.replace(" ","|")
print(f"字元串nitty is a nauty boy被替換空格後,結果:{new_str}")
#并按照“|”進行字元串分割,得到清單
list = new_str.split("|")
print(f"字元串{new_str}按照|分割後,得到:{list}")           

運作:

python資料容器之清單、元組、字元串

序列

序列是指内容連續、有序,可使用下标索引的一類資料容器

清單、元組、字元串,均可以視為序列。

序列的常用操作-切片

切片:從一個序列中,取出一個子序列

文法:序列[起始下标:結束下标:步長]

練習案例:序列的切片實踐

有字元串:“步進日日,起一煙如霞暮兮念和,nohtpy學”

使用已學的任何方式,得到“念兮暮霞如煙”

參考:

1.倒序字元串,切片取出 或 切片取出,然後倒序

2.split分隔“,”replace替換“和”“一起”為空,倒序字元串

#定義字元串
a_str = "步進日日,起一煙如霞暮兮念和,nohtpy學"

#方法1 倒序字元串,切片取出
def method1():
    print("方法1")
    my_str = a_str[::-1]
    print(f"倒序後的字元串:{my_str}")
    index = my_str.index("念")
    index2 = my_str.index("煙")
    str = my_str[index:index2+1:]
    print(f"切片取出的字元串:{str}")

#方法2 切片取出,然後倒序字元串
def method2():
    print("方法2")
    index2 = a_str.index("煙")
    index = a_str.index("念")
    my_str = a_str[index2:index+1:]
    print(f"切片取出的字元串:{my_str}")
    str = my_str[::-1]
    print(f"倒序後的字元串:{str}")

#方法3 split分隔“,”replace替換“和”“一起”為空,倒序字元串
def method3():
    print("方法3")
    str = a_str.split(",")[1][::-1].replace("和"," ").replace("一起"," ").replace(" ","")
    print(f"方法3得到的結果:{str}")

method1()
method2()
method3()           

運作:

python資料容器之清單、元組、字元串

我是為了更清楚每一步的變化,把過程中的也print出來了,實際上可以更簡化,一句話解決。

今天先到這了,資料容器中的集合和字典明天繼續更新~