在Python中有許多偏函數( Partial function)可以使用,常見的就是string的轉換
ex :
int('50') #50
這個例子就是把string type的50轉換成int的50,而且是10進制
那好,問題來了,能不能變成8/16等進制呢?可以,就是加上base的參數,沒有加上的話,默認會是10進制
ex :
int('50') #50
int('50',base=8) #40
int('50',base=16) #80
在python中有一個工具叫做functools,理面整合許多Partial function,因此針對上面的例子可以改寫為
ex:
import functools
int2=functools.partial(int,base=8)
int2('50') # 40
簡單方便的用法,但也不是說不能改喔
雖然定義了默認的轉換是8,但可以手動加上base參數轉成想要的
ex:
int2('50',base=16) #80
其實這樣的用法只是相當於固定原有函式的參數默認值,所以實際上是可以修改的,寫法只是方便調用罷了
2017年7月30日 星期日
2017年7月23日 星期日
[Pytrhon]Sorted_and_lambda
1. sorted用來排序,預設的情況下,如果要排序的List為數字,是從小到大排列
ex: L=[5,-12,13,9,100,0]
print(sorted(L)) # [-12,0,5,9,100]
ex: L=[5,-12,13,9,100,0]
print(sorted(L)) # [-12,0,5,9,100]
[Python]Map_Reduce_Filter
1.Map : 接收一個函數以及一個list,將函數作用在list上的每一個元素後,產生新的list
2.Reduce : 接收一個函數以及一個list,講元素傳入函數進行處理,不同於Map,祂會產生一個結果而不是一個list
3.filter: 接收一個函數以及一個list,將函式作用在元素上,回傳True or Flase
這邊可以看到,同樣都是傳入函數跟list,但回傳的東西不同,回傳唯一結果的是Reduce跟filter,只有Map會回傳list
2.Reduce : 接收一個函數以及一個list,講元素傳入函數進行處理,不同於Map,祂會產生一個結果而不是一個list
3.filter: 接收一個函數以及一個list,將函式作用在元素上,回傳True or Flase
這邊可以看到,同樣都是傳入函數跟list,但回傳的東西不同,回傳唯一結果的是Reduce跟filter,只有Map會回傳list
2017年7月9日 星期日
[Python]Map-and-reduce
1.
map的語法是 map(fn,var),作用為將 fn 作用在var上,一般來說var是list。map將var上的元素,這邊我們姑且認為var是一個list,將list上的元素一一丟入fn中進行運算,然後產生一個list
map的語法是 map(fn,var),作用為將 fn 作用在var上,一般來說var是list。map將var上的元素,這邊我們姑且認為var是一個list,將list上的元素一一丟入fn中進行運算,然後產生一個list
[Python]Higher-order-function
這邊先介紹一個Python的功能,『函數式編程』(functional programming),他的意思就是將函數當成參數包在另外一個參數裡面,例如有一個系統內建函數: abs,這是輸出一個絕對值的value,今天有一個使用者自訂函數: add2(x,y,abs)
2017年7月5日 星期三
[Python]Generator-and-iterator-or-iterable
1.
Generator設計的目的是為了利用推導功能,一步步算出下一個元素是多少,著眼點是list如果一次產生多個元素,但卻只要前面幾個元素,就會很浪費空間。假定產生20個元素
Generator設計的目的是為了利用推導功能,一步步算出下一個元素是多少,著眼點是list如果一次產生多個元素,但卻只要前面幾個元素,就會很浪費空間。假定產生20個元素
2017年7月2日 星期日
[Python]the-python-iterator-and-list-generator
1.
python可以在給定一個list , tuple或者dict,使用"for"來遍歷所有的item,這叫做送代(iteration),類似C/C++/Jave等近代語言那樣
ex: dict={'a':1, 'b':2,'c':3}
這是字典,有key跟value,要遍歷他的item可用
for key in dict:
print(key) # b a c
不過注意,字典形式並非按照list的方法排列,所以可以能輸出的順序不一樣
上述的方法只輸出key,要輸出value的話可以改寫為:
for value in dict.values():
print(value) # 2 1 3
當然要同時輸出key:value的形式,則是改為
for key,value in dict.items():
print(key,value)
# b 2
a 1
c 3
python可以在給定一個list , tuple或者dict,使用"for"來遍歷所有的item,這叫做送代(iteration),類似C/C++/Jave等近代語言那樣
ex: dict={'a':1, 'b':2,'c':3}
這是字典,有key跟value,要遍歷他的item可用
for key in dict:
print(key) # b a c
不過注意,字典形式並非按照list的方法排列,所以可以能輸出的順序不一樣
上述的方法只輸出key,要輸出value的話可以改寫為:
for value in dict.values():
print(value) # 2 1 3
當然要同時輸出key:value的形式,則是改為
for key,value in dict.items():
print(key,value)
# b 2
a 1
c 3
訂閱:
意見 (Atom)
[Python] Partial function
在Python中有許多偏函數( Partial function)可以使用,常見的就是string的轉換 ex : int('50') #50 這個例子就是把string type的50轉換成int的50,而且是10進制 那好,問題來了,能不能變成8...
-
1. map的語法是 map(fn,var),作用為將 fn 作用在var上,一般來說var是list。map將var上的元素,這邊我們姑且認為var是一個list,將list上的元素一一丟入fn中進行運算,然後產生一個list
-
1. sorted用來排序,預設的情況下,如果要排序的List為數字,是從小到大排列 ex: L=[5,-12,13,9,100,0] print(sorted(L)) # [-12,0,5,9,100]
-
1. Generator設計的目的是為了利用推導功能,一步步算出下一個元素是多少,著眼點是list如果一次產生多個元素,但卻只要前面幾個元素,就會很浪費空間。假定產生20個元素