Python 多好用不消多說,人人望望本人用的說話就曉得了。然則 Python 隱蔽的高等功效你都 get 了嗎?本文中,作者列舉了 Python 中五種略高等的特性和它們的使用要領,快來一探事實吧!

Python 是一種鮮艷的說話,它簡略易用卻特別很是強盛。但你真的會用 Python 的一切功效嗎?
任何編程說話的高等特性平日都是經由過程大批的使用履歷才發明的。譬如你在編寫一個龐大的項目,并在 stackoverflow 上探求某個成績的謎底。然后你俄然發明了一個特別很是優雅的辦理方案,它使用了你從不曉得的 Python 功效!
這類進修方式太乏味了:經由過程索求,有時發明甚么。
上面是 Python 的 5 種高等特性,和它們的用法。
Lambda 函數
Lambda 函數是一種比較小的匿名函數——匿名是指它現實上沒有函數名。
Python 函數平日使用 def a_function_name() 樣式來界說,但關于 lambda 函數,咱們基本沒為它定名。這是由于 lambda 函數的功效是履行某種簡略的抒發式或者運算,六合彩即而無需齊全界說函數。
lambda 函數可以使用恣意數目的參數,但抒發式只能有一個。
- x = lambda a, b : a * b
- print(x(5, 6)) # prints '30'
-
- x = lambda a : a*3 + 3
- print(x(3)) # prints '12'
望它何等簡略!咱們履行了運動彩 線上投注一些簡略的數學運算,而無需界說整個函數。這是 Python 的浩繁特性之一,這些特性使它成為一種清潔、簡略的編程說話。
Map 函數
Map() 是一種內置的 Python 函數,它可以將函數運用于種種數據布局中的元素,如列表或者字典。關于這類運算來說,這是一種特別很是清潔并且可讀的履行方式。
- def square_it_func(a):
- return a * a
-
- x = map(square_it_func, [1, 4, 7])
- print(x) # prints '[1, 16, 47]'
-
- def multiplier_func(a, b):
- return a * b
-
- x = map(multiplier_func, [1, 4, 7], [2, 5, 8])
- print(x) # prints '[2, 20, 56]'望望下面的示例!咱們可以將函數運用于單個或者多個列表。現實上,你可以使用任何 Python 函數作為 map 函數的輸出,只需它與你正在操作的序列元素是兼容的。
Filtlol商店er 函數
filter 內置函數與 map 函數特別很是類似,它也將函數運用于序列布局(列表、元組、字典)。二者的樞紐區分在于 filter() 將只返歸運用函數返歸 True 的元素。
概況請望以下示例:
- # Our numbers
- numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
-
- # Function that filters out all numbers which are odd
- def filter_odd_numbers(num):
-
- if num % 2 == 0:
- return True
- else:
- return False
-
- filtered_numbers = filter(filter_odd_numbers, numbers)
-
- print(filtered_numbers)
- # filtered_numbers = [2, 4, 6, 8, 10, 12, 14]
咱們不僅評價了每個列表元素的 True 或者 False,filter() 函數還確保只返歸婚配為 True 的元素。特別很是便于處置反省抒發式以及構建返歸列表這兩步。
Itertools 模塊
Python 的 Itertools 模塊是處置迭代器的對象聚攏。迭代器是一種可以在 for 輪回語句(包含列表、元組以及字典)中使用的數據類型。
使用 Itertools 模塊中的函數讓你可以履行許多迭代器操作,這些操作平日必要多行函數以及龐大的列表懂得。對于 Itertools 的神奇的地方,請望如下示例:
- from itertools import *
-
- # Easy joining of two lists into a list of tuples
- for i in izip([1, 2, 3], ['a', 'b', 'c']):
- print i
- # ('a', 1)
- # ('b', 2)
- # ('c', 3)
-
- # The count() function returns an interator that
- # produces consecutive integers, forever. This
- # one is great for adding indices next to your list
- # elements for readability and convenience
- for i in izip(count(1), ['Bob', 'Emily', 'Joe']):
- print i
- # (1, 'Bob')
- # (2, 'Emily')
- # (3, 'Joe')
-
- # The dropwhile() function returns an iter球 英文ator that returns
- # all the elements of the input which come after a certain
- # condition becomes false for the first time.
- def check_for_drop(x):
- print 'Checking: ', x
- return (x > 5)
-
- for i in dropwhile(should_drop, [2, 4, 6, 8, 10, 12]):
- print 'Result: ', i
-
- # Checking: 2
- # Checking: 4
- # Result: 6
- # Result: 8
- # Result: 10
- # Result: 12
-
-
- # The groupby() function is great for retrieving bunches
- # of iterator elements which are the same or have similar
- # properties
-
- a = sorted([1, 2, 1, 3, 2, 1, 2, 3, 4, 5])
- for key, value in groupby(a):
- print(key, value), end=' ')
-
- # (1, [1, 1, 1])
- # (2, [2, 2, 2])
- # (3, [3, 3])
- # (4, [4])
- # (5, [5])
Generator 函數
Generator 函數是一個相似迭代器的函數,即它也能夠用在 for 輪回語句中。這大大簡化了你的代碼,并且相比簡略的 for 輪回,它節儉了許多內存。
譬如,咱們想把 1 到 1000 的一切數字相加,如下代碼塊的第一部門向你鋪示了若何使用 for 輪回來進行這一計算。
運動彩券線上投注
【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私家概念盡非權勢巨子,不代表本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱:,咱們將實時予以處置。
|