5早いほど良いのPythonの特性を知ります

https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9039746731433820646%22%7D&n_type=0&p_from=1

 

キリルSharkovskiポストの写真Unsplash誌

AI開発者が雷鋒ネットワークは、Pythonプログラミング言語は、過去10年間の上昇で、かつ非常に強力な言語であることが判明しました。私は、インタラクティブマップからブロック鎖に、アプリケーションの多くを構築するためにはPythonを使用しました。Pythonは初心者にはすべての機能を把握するために開始することが困難であり、多くの機能を持っています。

あなたは抽象化のPythonのより高いレベルでの書き込みコードにプログラマを超える(例えばCやMATLABなど)他の言語から変換されている場合でも、間違いなく別の経験です。振り返ってみると、私は回り道をたくさん取る確かに少なく、知っていたならば、多くのPythonの特徴があります。今、私は最も重要な機能の5を強調したいです。

圧縮されたコードを理解するには1. List--

Pythonの「スキル」は、すべての初心者は、これらのスキルを学ぶ必要があるとして、多くの人々は、ラムダ、マップやフィルタします。私は、彼らが我々が機能を持っていなければならないということですが、私は、柔軟性の欠如を発見したと信じていますが、彼らはほとんどの時間では特に有用ではありません。

ラムダは、単一の使用のための1つの行関数で組み合わせ方法です。関数が複数回呼び出された場合、パフォーマンスが影響を受けることになります。一方、マップ機能は、リスト内のすべての要素に適用され、取得したフィルタは、設定された条件の要素のユーザ定義されたサブセットを満たすこと。

add_funcラムダ= Z:Z ** 2 = is_oddラムダ:%2 == 1乗算ラムダ= X、Y:X * Y =連想リストリスト(範囲(10))プリント(aListの)#[0、1、2 3、4、5、6、7、8、9]

 

アナターゼMaragosは雑誌で写真を公開しUnsplash

理解はシンプルかつ柔軟な方法のリストである、あなたは他のリストからリストを作成するために、式で柔軟な条件を使用することができます。これは、機能または発現を有する、角括弧によって構築された、要素、一定の条件が満たされた場合にのみ、発現または機能は、リストの各要素に適用しました。ネストされたリスト、およびマップおよびフィルタを使用するよりもはるかに柔軟に対処するために入れ子にすることができます。

リスト内包の#構文[alistの中xの式(X)であればoptional_condition(X)]

プリント(リスト(マップ(add_func、aListの)))プリント([X ** 2 xのalistの中])#[0、1、4、9、16、25、36、49、64、81]#[0 、1、4、9、16、25、36、49、64、81]プリント(リスト(フィルタ(is_odd、aListの)))プリント(alistの中xの[XならX%2 == 1])#[ 1、3、5、7、9]#[1、3、5、7、9]

2.リストサイクル

前記Altruts [-1] == Altrue [LEN(Listor)-1] Pythonは、負の屈折率の使用を可能にします。したがって、我々はリストでき[-2]このような最後から二番目の元素Aを呼び出してリストへのアクセスなど。

我々はまた、構文連想リストを使用することができ、[スタート:終わり:ステップ]最初の要素を含むリストを、スライスではなく、要素の終了を。したがって、aListの[2:5] [2,3,4]の結果です。また、[:: - 1]リストを呼び出すことができ、リストを逆に、私はこの手法は非常にエレガント見つけます。

 

マーティンShrederは雑誌で写真を公開しUnsplash

リストは、個々の要素、または要素とアスタリスクサブリスト混合に分けることができます。

A、B、C、D = aListの[0:4]プリント(f'a = {}、B = {B}、C = {C}、D = {D} ')#A = 0、B = 1、C = 2、D = 3、* B、C、D =連想リストプリント(f'a = {}、B = {B}、C = {C}、D = {D} ')#A = 0、B = [1、2、3、4、5、6、7]、C = 8、D = 9

3.圧縮および列挙:forループ

ジップ機能は、複数のリストからイテレータ重合要素というイテレータを作成します。これは、並列にトラバースループと並列ソートのためにリストを可能にします。これは、アスタリスクで解凍することができます。

numList = [0、1、2] engList = [ 'ゼロ'、 '1'、 '2'] espList = [ 'CERO'、 'UNO'、 'DOS']プリント(リスト(ZIP(numList、engList、espList )))#[(0、 'ゼロ'、 'C​​ERO')、(1、 '1'、 'UNO')、(2、 '2'、 'DOS')] NUMため、ENG、ESPジップに( numList、engList、espList):プリント(F '{NUM}は英語と{ESP}スペイン{ENG}である')#0は、スペイン語、英語ではゼロとCEROあります。1位はスペイン語で、英語での1とUNOです。#2は、スペイン語で、英語とドスの2です。

ENG =リスト(ZIP(engList、espList、numList))Eng.sort()#ソートengListによって、B、C = ZIP(* ENG)プリント()プリント(b)は、プリント(C)#( '1' 、 '2'、 'ゼロ')#( 'UNO'、 'DOS'、 'C​​ERO')#(1、2、0)

 

雑誌に掲載されたエロール・アハメド写真Unsplash

列挙は最初少し威圧的に見えるかもしれませんが、多くの場合、それは非常に便利です。これは、多くの場合、自動カウンタのループカウンタ= 0とカウンタ+ = 1でループ変数のカウンタを作成し、初期化する必要が使用されます。列挙およびZIPループは、最も強力なツールの2のために構成されています。

大文字= [ 'A'、 'B'、 'C​​'、 'D'、 'E'、 'F']小文字= [ ''、 'B'、 'C​​'、 'D'、 'E'、列挙(ZIP(大文字、小文字)、1)におけるiに対する 'F']、(上下):プリント(F '{I}:{上部}と{低下}。')#1:Aと。#2:BおよびB。#3:CおよびC。#4:D及びD。#5:EおよびE。第6位:FとF。

4ジェネレータ:メモリ効率

私たちは、大量のデータを計算するつもりが、同じ時間を避けたい場合は、すべての結果の必要なメモリを割り当てる使用発電機となります。言い換えれば、彼らは、動的に前の値をメモリに格納されるのではなく、値を生成しているので、我々はそれらだけ反復することができます。

彼らは、典型的には、大きなファイルを読み取るか、無限のシーケンスを生成するためのキーワード利回りを使用するために使用されています。私は頻繁に私のデータの科学プロジェクトのほとんどで、それが役立ちます。

DEF GEN(N):#整数を生成する無限シーケンスジェネレータ> = N真つつ:収率NN + = 1 G = GEN 3プリント(次の(G))#3プリント(次の(G)に(3)#が始まります)#4プリント(次の(G))#5プリント(次の(G))#6

5.仮想環境:隔離

あなたがこの記事を読んでいれば一つだけ、あなたは仮想環境を使用してすべきか覚えています。

 

Unsplashのマシュー・クォンポストの写真

Pythonアプリケーションは、一般的に複雑な依存関係を持つ、別の開発者に多くの異なるパッケージ、これらのパッケージを使用します。異なるアプリケーションは、結果が他のライブラリのバージョンを使用して複製することはできませんライブラリの特定のセットを使用して開発されています。インストール後にアプリケーションのすべての要件を満たすために何の場合はありません。

condaは-n venvピップのpython = 3.7#選択のpython versionsourceアクティブvenv ...ソース非アクティブ化を作成します

したがって、完全にピップまたはcondaを使用することができ、各アプリケーション用に別のスタンドアロン仮想環境venvを作成することが非常に重要です。

公開された101元の記事 ウォン称賛73 ビュー120 000 +

おすすめ

転載: blog.csdn.net/usstmiracle/article/details/103762219