python函式,列表生成式及高階函式

2021-09-24 20:37:04 字數 2941 閱讀 2389

函式

函式生命成後若不呼叫則不會執行

形式引數

位置引數

可變引數

預設引數

關鍵字引數

返回值

返回值為函式運算的結果,返回函式執行結果,可以以與元組形式返回多個返回值

eg:

def sum(a,b)

return a+b

result = sum(1,2)

print(result)

變數的作用域區域性變數:在函式內部定義的變數,只在函式內部使用,函式執行結束,變數會自動刪除

全域性變數:在**結束完之前都生效

列表生成式

[expression for i in 序列 if]

print([i **i for i in range(1,10) if i % 2 == 0] )

[值 for ]

s = 『1 5000 1000』

列表生成式表達

li = [int(item) for item in s.split()]

print(li)

判斷輸入整數內有幾個不重複的質數和為輸入的正整數

def zhishu(num):

for i in range(2,num):

if num % i == 0:

return false

else:

return true

n = int(input())

l =

for i in range(3,n):

if zhishu(i):

count = 0

for i in range(0,len(l)):

x = l.pop()

y = n - x

if x == y:

count += 1

elif l.count(y) > 0:

count += 1

內建高階函式abs 求絕對值

函式本身也可以賦值給變數,變數也可以指向函式

f = abs

print(f(-10))

map():接受兩個引數,乙個是函式,乙個是序列

map將傳入的函式一次作用到序列的每個元素,並把結果作為新的序列返回

eg:對於序列[-1,3,-5,-2]的每個元素求絕對值

print(list(map(abs,[-1,3,-5,-2])))

reduce():把乙個函式作用在乙個序列上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下乙個元素做累計運算

eg:reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2),x3),x4)

filter過濾函式

接收乙個函式乙個序列

filter把傳入的函式一次作用於每個元素,根據返回值是true還是false決定保留還是丟棄

import random

def isodd(num):

if num % 2 == 0:

return true

else:

return false

li =

for i in range(101):

print(list(filter(isodd,li)))

sort和sorted預設是由小到大排序,加入reverse=true則由大到小排序

匿名函式關鍵字為lambda,冒號前為形參,冒號後為返回值

print(**args,**kwargs : atgs,kwargs)

print(reduce(lambda x,y:x+y,[1,2,3,4,5]))

print(sorted([0,7,0,1,2,1,5,1,7,8,0,67,1,3,4],key = lambda x: 1 if x == 0 else 0))

函式 匿名函式,列表生成式

lambda x x 2關鍵字lambda表示匿名函式,冒號前面的x表示函式引數。匿名函式。用法 func lambda x x 2 print func 2 4l list map lambda x x 2,range 5 map func,iterables print l 0,2,4,6,8 ...

匿名函式 列表生成式 字典生成式 遞迴

語法 語法格式為 lambda 引數1,引數2,引數 引數可以省略 邏輯表示式 即結果,不可省略 引數的範圍 可省略 lambda 引數 結果 lambda x,y x y 函式輸入是x和y,輸出是它們的積x y lambda none 函式沒有輸入引數,輸出是none lambda args su...

python列表生成式及相關操作

乙個需求,員工的稅前工資儲存在乙個叫salty的列表中,現在需要把所有員工的稅後工資計算出來,並存放到乙個aftertaxsalty的列表中,假設稅率為10 1.正常的操作 salty 10000,9000,12000,14500,13000 aftertaxsalty list for one i...