本期内容詳解:
清單、元組和字元串的共同點
- 都可以通過索引得到每一個元素
- 預設索引值總是從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
恢複下圖被劃掉的代碼:

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]))