print(})
print( if i % 3 == 0 })
生成乙個列表,列表元素分別為[12,22,32,…n2]
li =
for i in range(1,9):
print(li)
print([i ** 2 for i in range(1,9)])
#[expression for i in 序列 if …]
#1.找出1-10之間的所有偶數,並返回乙個列表(包含以這個偶數為半徑的圓的面積)
import math
a = math.pi
print(a)
print([math.pi * r * r for r in range(2,11,2)])
#2.找出1~100之間所有的質數
def isprime(num):
for i in range(2,num):
if num % i == 0:
return false
else:
return true
print([i for i in range(2,101) if isprime(i)])
三、字典生成式
d = dict(a=1,b=2)
print(d)
new_d = {}
for i in d:
new_d[i.upper()] = d[i]
# print('key轉化為大寫的字典:',new_d)
print()
d = dict(a=2,b=1,c=2,b=9,a=10)
#輸出 new_d = {}
for k,v in d.items():
low_k = k.lower()
if low_k not in new_d:
new_d[low_k] = v
else:
new_d[low_k] += v
print(new_d)
print()
「」"
高階函式
實參是乙個函式名
函式的返回值也是乙個函式
「」"print(abs(-11))
#函式本身也可以賦值給變數,變數也可以指向函式
f = abs
print(f(-10))
#傳遞的引數包括函式名
def fun(x,y,f):
return f(x),f(y)
print(fun(-10,34,abs))
「」"
map()函式接收兩個引數,乙個是函式,乙個是序列
map將傳入的函式依次作用到序列的每個元素,並且
把結果作為新的序列返回
「」"#對於序列[-1,3,-5,-4]的每個元素求絕對值
print(list(map(abs,[-1,3,-5,-4])))
#對於序列的每個元素求階乘(10個,2~7之間的隨機)
import random
def factoria(x):
res = 1
for i in range(1,x+1):
res *= i
return res
li = [random.randint(2,7) for i in range(10)]
print(list(map(factoria,li)))
「」"
reduce:把乙個函式作用在乙個序列上,這個函式必須接收兩個
引數,reduce把結果繼續和序列的下乙個元素累計計算
reduce(f,[x1,x2,x3,x4,x5]) = f(f(f(f(x1,x2),x3),x4),x5)
「」"
from functools import reduce
def multi(x,y):
return x * y
print(reduce(multi,range(1,4)))
def add(x,y):
return x + y
print(reduce(add,[1,2,3,4,5]))
「」"
filter過濾函式
和map類似,也接收乙個函式和乙個序列
但是和map不同的是,filter把傳入的函式依次作用於每個元素
然後根據返回值是true還是false決定保留還是丟棄該元素
「」"
def isodd(num):
if num % 2 == 0:
return true
else:
return false
print(list(filter(isodd,range(100))))
li = [5,3,2,4]
li.sort(reverse=true)
print(li)
a = sorted(li,reverse=true)
print(a)
info =
print(sorted(info))
#按照商品數量進行排序:
def sorted_by_count(x):
return x[1]
def sorted_by_price(x):
return x[2]
def sorted_by_count_price(x):
return x[1],x[2]
print(sorted(info,key=sorted_by_count))
print(sorted(info,key=sorted_by_price))
print(sorted(info,key=sorted_by_count_price))
(2018-攜程-春招題)題目需求:
給定乙個整形陣列, 將陣列中所有的0移動到末尾, 非0項保持不變;
在原始陣列上進行移動操作, 勿建立新的陣列;
輸入:第一行是陣列長度, 後續每一行是陣列的一條記錄;40
702輸出:
調整後陣列的內容;47
200「」"
n = ''.join(input().split())
li = [int(i) for i in n]
def move_zero(item):
if item == 0:
return 2
else:
return 1
print(sorted(li,key=move_zero))
「」"
匿名函式的關鍵字為lambda,冒號前面是形參 冒號後面是返回值
「」"
from functools import reduce
def add(x,y):
return x + y
print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
print(list(map(lambda x:x ** 2,range(5))))
#求10的階乘
print(reduce(lambda x,y:x*y,range(1,11)))
#匿名函式的預設引數
f = lambda x,y=2:x**y
print(f(3))
print(f(2,4))
#匿名函式的可變引數:
f = lambda *args:sum(args)
print(f(1,2,3,45,6))
#匿名函式的關鍵字引數:
f = lambda **kwargs:kwargs.values()
print(f(name='fentiao',age=10))
練習:
「」"nums = [0, 7, 0, 1, 2, 1, 5, 1, 7, 8, 0, 67, 1, 3, 4]
「」"
nums = [0, 7, 0, 1, 2, 1, 5, 1, 7, 8, 0, 67, 1, 3, 4]
print(sorted(nums,key=lambda x:1 if x == 0 else 0))
python 函式高階 列表生成式,生成器,
列表生成式 需求 迴圈0 10,把其中每個值加一並列印 文藝青年版 n list range 10 for index,i in enumerate n n i 1 print n 1,2,3,4,5,6,7,8,9,10 執行結果 裝逼青年版 n list range 10 print list ...
python函式,列表生成式及高階函式
函式 函式生命成後若不呼叫則不會執行 形式引數 位置引數 可變引數 預設引數 關鍵字引數 返回值 返回值為函式運算的結果,返回函式執行結果,可以以與元組形式返回多個返回值 eg def sum a,b return a b result sum 1,2 print result 變數的作用域區域性變...
2 3 13 Python 函式高階 列表生成式
列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成list 1,2,3,4,5,6,7,8,9,10 可以用list range 1,11 list range 1,11 1,2,3,4,5,6,7,8,9,10 但...