python合集———內建函式合集

右手點天下發表於2019-03-15

enumerate函式

# enumerate函式

nums = [1, 2]
for i, num in enumerate(nums):
    print(i, num)
# result:
# 0 1
# 1 2

lambda函式

lambda函式有如下特性:
lambda函式是匿名的:所謂匿名函式,通俗地說就是沒有名字的函式。lambda函式沒有名字。
lambda函式有輸入和輸出:輸入是傳入到引數列表argument_list的值,輸出是根據表示式expression計算得到的值。
lambda函式一般功能簡單:單行expression決定了lambda函式不可能完成複雜的邏輯,
只能完成非常簡單的功能。由於其實現的功能一目瞭然,甚至不需要專門的名字來說明。
下面是一些lambda函式示例:
lambda x, y: xy;函式輸入是x和y,輸出是它們的積 xy
lambda:None;函式沒有輸入引數,輸出是None
lambda *args: sum(args): 輸入是任意個數的引數,輸出是它們的和(隱性要求是輸入引數必須能夠進行加法運算)
lambda **kwargs: 1;輸入是任意鍵值對引數,輸出是1

# lambda 函式
a = lambda x, y: x*y
print(a(1, 2))
# result : 2

# filter函式。
nums1 = [1, 2, 3, 4]
d = filter(lambda x: x % 3 == 0, nums1)
# 將列表中3的倍數留下
# 返回值是一個可迭代物件
print(d)
# result: <filter object at 0x00000280726CFB38>
for i in d:
    print(i)
# result: 3

nums2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
c = sorted(nums2, key=lambda x: abs(5-x))
# 返回一個新的列表
print(nums2, c)
# result:[1, 2, 3, 4, 5, 6, 7, 8, 9] [5, 4, 6, 3, 7, 2, 8, 1, 9]

nums3 = [1, 2, 3]
e = map(lambda x: x+1, nums3)
# 返回的也是一個可迭代物件
print(nums3, e)
# result:[1, 2, 3] <map object at 0x0000017D7A27FC88>
for i in e:
    print(i)
# result:
# 2
# 3
# 4

ZIP函式

zip函式作用於迭代器,返回一個可迭代物件

text1 = [1, 2, 3, 4]
text2 = [5, 6, 7, 8]
text3 = [1, 2, 3, 4, 5, 6]
temp = zip(text1, text2)
print(temp)  # 函式返回的是一個可迭代物件
# result <zip object at 0x0000024602285288>
for i in temp:
    print(i)
# result
# (1, 5)
# (2, 6)
# (3, 7)
# (4, 8)
temp = zip(text1, text3)

for i in temp:
    print(i)
# result 和元素個數最少的保持一致
# (1, 1)
# (2, 2)
# (3, 3)
# (4, 4)

nums = [[1, 2], [2, 3], [4, 5]]
for i in zip(*nums):  # 反解壓 提相同位置的元素
    print(i)
# (1, 2, 4)
# (2, 3, 5)
nums = ['flower', 'flow', 'flight']
for i in zip(*nums):
    print(i)
# ('f', 'f', 'f')
# ('l', 'l', 'l')
# ('o', 'o', 'i')
# ('w', 'w', 'g')

相關文章