目錄
一、三元表示式 - if …… else
二、列表生成式 - [… for … in …]
三、字典生成式 -
3-1 字典生成式用於集合的生成
四、匿名函式 - lambda
4-1 匿名函式和高階函式
4-1-1 max、min + lambda - 指定函式比較的物件
4-1-2 sorted + lambda - 指定函式的排序依據
4-1-3 map + lambda - 自定義對映規則,返回列表
4-1-4 filter + lambda - 自定義過濾規則,返回列表
4-1-5 reduce + lambda - 自定義合併
五、生成器表示式 - (… for … in …)
[迴圈取出來的值進行運算 for 迴圈取出的變數 in 列表名][迴圈取出來滿足if判斷的值進行運算 for 迴圈取出的變數 in 列表名 if 判斷]
語法:
[
expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...for itemn in iterablen if conditionn
]'''
類似於res=
for item1 in iterable1:
if condition1:
for item2 in iterable2:
if condition2
...for itemn in iterablen:
if conditionn:
'''names = ['a','b','c']
l=[name + '_123' for name in names]
print(l)
# ['a_123','b_123','c_123']
l = ['a', 'b', 'c']
# 取出列表的值和索引
for index in enumerate(l):
print(index) # (0, 'a')
keys = ['name','age','***']
vals = ['a','v','c']
dic =
print(dic)
#
# #
lambda x,y,z=1:x+y+zlambda 引數名們 : 表示式salaries=
# 注意!!max和min函式對字典的比較是一般情況是key
max(salaries)
min(salaries)
# 通過max函式的key引數,改變max函式的比較依據
# max函式會for迴圈出乙個值,值會被傳給key指定的函式,呼叫key指定的函式,拿到返回值作為依據
# 第乙個值是被max迴圈的物件
a = max(salaries,key=lambda k :salaries[k])
b = min(salaries,key=lambda k :salaries[k])
print(a)
print(b)
nums = [1,4,25,6,7,99]
print(sorted(nums)) # 預設公升序
print(sorted(nums,reverse= true)) # 降序
# 對字典進行排序,key 為指定依賴
res = sorted(salaries,key= lambda name:salaries[name])
print(res)
# map :把乙個列表按照自定義對映規則對映成乙個新的列表
names = ['a', 'b', 'c']
res = map(lambda name: name + '123', names)
print(res) # print(list(res)) # ['a123', 'b123', 'c123']
# filter :從乙個列表中過濾出,符合過濾規則的值形成新的列表
# 相當於for迴圈取出元素,傳給匿名函式,講呼叫匿名函式返回值為true的元素留下
names = ['a12', 'b', 'c12', 'd']
res = filter(lambda name: name.endswith('12'), names)
print(res) # print(list(res)) # ['a12', 'c12']
# 同上
res1 = [name for name in names if name.endswith('12')]
print(res1) # ['a12', 'c12']
print(list(res1)) # ['a12', 'c12']
# reduce :把多個值合併成乙個結果
# reduce(lambda 接受後面兩個的值進行運算,迴圈物件的值,合併引數)
from functools import reduce
li = ['a12', 'b', 'c12', 'd']
# 'a'是合併引數,li 進行迴圈取出列表中的值,兩個值給匿名函式作為引數傳入
# 最後取出來的是乙個合併的字串
res = reduce(lambda x, y: x + y, li, 'a')
print(res) # aa12bc12d
# 進行疊加運算
# 使用()生成生成器,用於迭代;注意!!值僅可消費一次!
g = ((i+2) for i in range(2,27))
print(g) # at 0x00000227ba0eef10>
print(next(g)) # 4
print(next(g)) # 5
# 可以使用在函式呼叫中,且省略一對小括號
sum(i ** 2 for i in range(10))
python 列表生成式,字典生成式
生成乙個列表,列表元素分別為 1 1,2 2.9 9 import math li for i in range 1,10 print li print i i for i in range 1,10 print i i for i in range 1,10 if i 2 0 找出1 10之間的所...
Python 列表生成式 字典生成式
通過生成式可以更加簡潔地生成列表和字典 列表生成式 對比 直接生成資料後加入列表示例 user list list for i in range 10 2 print user list 通過列表生成式直接生成示例 user list x 2for x in range 10 print user ...
Python函式式程式設計之lambda
python可以使用lambda來建立匿名函式。lambda只是乙個表示式,函式題比def簡單的多。lambda主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數。lambda雖然看起來...