一、字串方法 1.嚴格意義上來說不叫函數,叫方法。用來處理對象的,對象方法,便於理解,可以理解成函數。
2.查看字串方法,可以用tab鍵查看。
(1).capitalize方法,把首字母大寫。
(2).replace方法 替換裡面的字元。有2個參數 ,首個參數是old,第二個是新的字串。
後面可以寫數值,替換幾次。
其實如果想看有哪些方法,不用定義一個變數,可以直接使用str.來看,查看列表的方法,是可以用list. 元祖用tuple. (3).split方法,切割字串,可以自訂切割符。把字串切分成列表
自訂切割符號,自訂切割幾次。
(4).join 方法,串連2個可迭代對象
用range來串連
二、string模組 要使用string模組,首先要import string。 (1)string.lowercase 列印所有小寫字母。
(2)string.uppercase 列印所有大寫字母
(3)string.capitalize 把首字母大寫。和字串caplitalize函數一樣
(4)string.replace 替換字串 3個必填參數一個選擇性參數,第一個是要替換的字串,第二個參數是要替換的值,第三個參數是新的值,選擇性參數是,替換幾次。
三、序列處理函數 除了len(),max(),min()函數外,還有幾個進階函數。 (1)filter() 函數用於過濾序列,過濾掉不合格元素,返回由符合條件元素組成的新列表。 該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。 def a(n): return n % 2 == 1 print filter(a,range(10))
用filter過濾出偶數。 如果使用匿名函數,不能加if的 filter(lambda x : x%2 ==0, range(10)) 這樣來寫就可以了
(2)zip() 函數用於將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。 如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
zip函數相當於拉鏈,把2個序列組合成一個列表,通過下標去一一對應。 可以通過zip來建立轉換成字典。
如果序列的長短不一樣呢。zip會取最短的。
(3)map() 會根據提供的函數對指定序列做映射。 第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數傳回值的新列表。
用None來填充了第三個元素。 定義乘方,對l1每個元素都做了乘方
還可以對多個序列做 def f(n) : # 計算平方數 return n + n map(f, [1,2,3,4,5])
map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數
# 提供了兩個列表,對相同位置的列表資料進行相加 map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
當定義了多個序列,參數就有多少個。 (4)reduce() 函數會對參數序列中元素進行累積。 函數將一個資料集合(鏈表,元組等)中的所有資料進行下列操作:用傳給reduce中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個資料用 function 函數運算,最後得到一個結果。 (1) reduce函數是Python的內建函數,他的作用是對定義的函數和值做二元計算。 (2)reduce文法,reduce(function,運算子,序列) 函數必須是含有2個參數的函數,1個或多餘2個都是不行的。後面的序列是可選的。看個例子 reduce(fun,range(1,10))
常規定義了一個函數,最後寫上序列,會自動計算階層。1+2+3+4+5+6+7+8+9的和。 lambda函數這樣定義 reduce(lambda x, y:x + y,range(1,10))
三、列表運算式 [i*2+10 for i in range(10)]
[i for i in range(10) if i%3 ==0]
這種方式和用filter和map 類似。