天天看點

FishC筆記—16 講 序列,序列

本期内容詳解:

清單、元組和字元串的共同點

  • 都可以通過索引得到每一個元素
  • 預設索引值總是從0開始
  • 可以通過分片的方法得到一個範圍内的元素的集合
  • 有很多共同的操作符(重複操作符、拼接操作符、成員關系操作符)

疊代:

重複回報過程的活動,其目的通常是為了接近并達到所需的目标成果,每一次對過程的重複我們稱之為疊代。每一次疊代的結果作為下一次疊代的初始值。

一些重要的BIF:

1)list():把一個可疊代的對象轉換為清單

2)tuple([iterable]):把一個可疊代的對象轉化為元組

3)str(obj):把obj對象轉化為字元串

4)max(),min():傳回序列或者參數集合中的最大或最小值

5)sum(iterable[,start=0]):傳回序列iterable和可選參數start的總和

6)sorted():傳回排序的清單,預設從小到大

以下傳回疊代器對象:

7)reversed():翻轉

8)enumerate():枚舉,生成由每個元素索引值和元素組成的元組

9)zip():傳回各個參數的序列組成的元組

典型課後題

我們根據清單、元祖和字元串的共同特點,把它們三統稱為什麼?

答:序列

序列,因為他們有以下共同點:

1)都可以通過索引得到每一個元素

2)預設索引值總是從0開始(當然靈活的Python還支援負數索引)

3)可以通過分片的方法得到一個範圍内的元素的集合

4)有很多共同的操作符(重複操作符、拼接操作符、成員關系操作符)

請問分别使用什麼BIF,可以把一個可疊代對象轉換為清單、元祖和字元串?

答:list() tuple() str()

list([iterable]) 把可疊代對象轉換為清單

tuple([iterable]) 把可疊代對象轉換為元祖

str(obj) 把對象轉換為字元串

你還能複述出“疊代”的概念嗎?

答:重複回報過程的活動,其目的通常是為了接近并達到所需的目标成果,每一次對過程的重複我們稱之為疊代。每一次疊代的結果作為下一次疊代的初始值。

你認為調用 max(‘I love FishC.com’) 會傳回什麼值?為什麼?

答:會傳回:’v’,因為字元串在計算機中是以ASCII碼的形式存儲,參數中ASCII碼值最大的是’v’對應的118

恢複下圖被劃掉的代碼:

FishC筆記—16 講 序列,序列
if name == each[]:  
           
name != each[]: 
           

猜想一下 min() 這個BIF的實作過程:

def min(x):  
        least = x[]  
        for each in x:  
            if each < least:  
                least = each  
        return least  
    print(min('123456789'))  
           

視訊中我們說 sum() 這個BIF有個缺陷,就是如果參數裡有字元串類型的話就會報錯,請寫出一個新的實作過程,自動“無視”參數裡的字元串并傳回正确的計算結果

def sum(x):  
        result =       
        for each in x:  
            if (type(each) == int) or (type(each) == float):  
                result += each  
            else:  
                continue  
        return result  
    print(sum([, , , 'a', '1', True]))