1. 程式人生 > 其它 >學習python的心酸歷程----內建函式

學習python的心酸歷程----內建函式

內建函式


range() 函式

range(start, stop, step)

function: 能夠生成一個指定的數字序列

引數: start:開始的值(如果該值未提供預設為0)

stop:結束的值

​ step:可選,步進值(如果該值未提供預設為1)

list(range(3)) 會返回列表 [0, 1, 2]

#使用list函式
re = range(5, 10)
print(list(re))
   5, 6, 7, 8, 9
    
#使用for迴圈
re = range(0, 10, 3)
for i in re:
	print(i)
   0, 
   3, 
   6, 
   9
    
#轉為迭代器next使用
re = range(-10, -100, -30)
r = iter(re)
print(next(r))		#迭代器取一個少一個
  -10, -40, -70

zip函式

建立一個聚合了來自每個可迭代物件中的元素的迭代器。

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True

sorted() 函式

sorted(iterable, reverse, key)

function:排序

parameter: iterable: 可迭代的資料 (容器型別資料, range資料序列, 迭代器)

​ reverse: 可選,是否翻轉,預設為False,不翻轉,Ture翻轉

​ key: 可選,函式, 可以是自定義函式, 可以是內建函式

:retion: 排序後的結果

>>arr = [3,7,1,-9,20,10]
>>res = sorted(arr)#從小到大
>>print(res)
[-9,1,3,7,10,20]
>>res = sorted(arr, reverse = Ture)#從大到小
>>print(res)
[20,10,7,3,1,-9]
>>res = sorted(arr, reverse = Ture, key = abs)#使用內建函式abs(求絕對值)作為key的引數
>>print(res)
[20,10,-9,7,3,1]
>>arr = [3,2,4,6,5,7,9]
>>res = sorted(arr, key = lsmbda x:x%2)#使用自定義函式作為key的引數
>>print(res)
[2,4,6,3,5,7,9]

map()函式

map(func, *iterables)

function:對傳入的可迭代資料每個元素進行處理,返回一個新的迭代器

parameter: func : 函式|內建函式

​ *iterables : 可迭代的資料

return:迭代器

>>varlist = ['1','2','3','4']  
>>newlist = []
>>for i in varlist:
>>    newlist.append(int(i))
>>print(newlist)
[1,2,3,4]
>>varlist = ['1','2','3','4'] 
>>res = map(str,varlist)
>>print(list(res))
[1,2,3,4]

reduce()函式

reduce(func, ietrable)

function : 過濾資料,把ietrable中每一個元素拿到func函式中進行處理,如果函式返回 Ture則保留這個資料返回False則丟棄這個資料

parameter : func:自定義函式

				ietrable : 可迭代資料

return : 保留下來的資料組成迭代器

>>varlist = [1,2,3,4,5,6,7,8,9]
#普通方法
>>newlist = []
>>for i in varlist:
>>  if i%2 ==0:
>>      newlist.append(i)
>>print(newlist)
#使用filter進行處理
>>def myfunc(n):
>>		if n%2 ==0:
>>			return True
>>`		else:
>>			return False
>>it = filter(myfunc, varlist)
>>print(it, list(it))
>>#優化版
>>it = filter(lambda n:True if n % 2 == 0 else False, varlist)
>>print(it, list(it))

其他內建函式

資料型別轉換相關函式
  • int() 將其他資料型別轉化為整形
  • float() 將其他資料型別轉化為浮點型
  • bool() 轉為布林型別
  • complex() 轉為複數型別
  • str() 轉為字串型別
  • list() 轉為列表型別
  • tuple() 轉為元祖型別
  • dict() 轉為字典型別
  • set() 轉為集合型別
變數相關函式
  • id() 獲取當前ID的標識
  • type() 獲取當前資料的型別字串
  • print() 資料的列印
  • input() 獲取輸入的資料
  • isinstance() 檢測是否為指定的資料型別
數學相關函式
  • abs() 返回一個數的絕對值,
  • sum() 返回一個數的和
  • max() 返回最大值
  • min() 返回最小值
  • pow() 冪函式 print(pow(2,3)) #求2的3次方
  • round() 四捨五入