新学習Pythonのジュニアパートナー、短いコードが幸せを感じるが、また、ここでは、簡単に書かれたPythonのいくつかを使用する方が喜んで両方の私はいくつかのヒントを収集するPythonの全体的なプロセスを使用しているもの、私はあなたの助けを期待しています。
1.リスト内包
あなたがリストを持って:バッグ= [1、2、3、4、5]
今あなたが倍増したいすべての要素が、それは次のようになります[2、4、6、8、10]
言語の経験に基づいて、ほとんどの初心者は、おそらく、このようにそれを行うだろう
袋= [1、2、3、4、5]
私のための範囲内(LEN(袋)):
バッグ[I] =バッグ[I] * 2
しかし、より良い方法があります:
バッグ= [バッグ内ELEMためELEM * 2]
非常に単純な、右?これは、Pythonのリスト内包と呼ばれています。
トレイ・ハンナーチュートリアルをクリックして、[1]リストの内包表記の詳細プレゼンテーションを見ます。
リストトラバース2
続行、または上記のリスト。
可能ならば、そうすることを避けるために試してみてください。
袋= [1、2、3、4、5]
私のための範囲内(LEN(袋)):
プリント(バッグ[i])と
代わりに、それは次のようにする必要があります:
袋= [1、2、3、4、5]
バッグの中に私がのために:
プリント(I)
xがリストである場合、あなたはそれの要素を反復処理することができます。ほとんどのケースでは、各要素のインデックスを必要としていますが、非行う場合は、機能を列挙使用しないでください。これは、次のようになります。
袋= [1、2、3、4、5]
インデックスのため、列挙内の要素(袋):
印刷(インデックス、要素)
非常に直感的。
3.交換素子
あなたがJavaからPythonやC言語に来ている場合は、これに慣れているかもしれません。
= 5
B = 10
およびb#の交換
TMP = A
A = B
B = TMP
しかし、Pythonは、より良い、より自然な方法を提供します!
= 5
B = 10
およびb#の交換
、B = B、A
かなり十分な、右?
4.リストを初期化します
あなたは、整数0のリストが必要な場合は、最初の10と思うかもしれされています。
バッグ=
用_中の範囲(10):
bag.append(0)
また別の方法:
バッグ= [0] * 10
よりエレガント参照してください。
注:リストには、リストが含まれている場合、これは浅いコピーを生成します。
例えば:
bag_of_bags = [0] * 5#[[0]、[0]、[0]、[0]、[0]
bag_of_bags [0] [0] = 1#[1]、[1]、[1]、[1]、[1]
おっと!すべてのリストが変更されている、と私たちは最初のリストを変更したいです。
それを読むためにそれを変更します。
bag_of_bags = [0]の範囲で_(5)]
#[0]、[0]、[0]、[0]、[0]
bag_of_bags [0] [0] = 1
# [[10000]]
念頭に置いて:
「時期尚早の最適化は諸悪の根源です。」
自問してみて、必要なリストを初期化しますか?
建設文字列
あなたは、多くの場合、文字列を出力する必要があります。多くの変数がある場合は、次のことを避けます。
名前=「レイモンド」
年齢= 22
born_in = "オークランド、CA"
文字列は= +名+「こんにちは、私の名前は」「と私は思い」+ STR(年齢)+「歳。私はで生まれた」+ born_in +「」
印刷(文字列)
額は、それははるかにそれを苛立たせ見えますか?あなたは.format、代わりにかなり簡単な方法を使用することができます。
これを行うには:
名前=「レイモンド」
年齢= 22
born_in = "オークランド、CA"
文字列は= "こんにちは、私の名前は{0}であると私は{1}歳です。私は、{2}で生まれた。"。形式(名前、年齢、born_in)
印刷(文字列)
はるかに良いです!
6.戻ります
Pythonはそれは人生が容易になり、あなたが関数内の複数の要素を返すことができます。しかし、この一般的なエラー予選のタプルを開梱する場合:
DEFバイナリ:
リターン0、1
結果=バイナリ
ゼロ= [0]結果
1 = [1]結果
これは必要ありません、あなたがこれを置き換えることができます。
DEFバイナリ:
リターン0、1
ゼロ、1 =バイナリ
:あなたはすべての要素が必要な場合は_下線で、返されます
バイナリゼロ、_ =
それはとても効率的です!
7.アクセス
あなたは、多くの場合にdictsの鍵ペア(キー、値)を書き込みます。
あなたがアクセスしようとしている場合はKeyError例外が間違っていないようにするためであってもよく、存在しない辞書に重要である、あなたはこれを行う傾向にあります。
COUNTR = {}
袋= [2、3、1、2、5、6、7、9、2、7]
バッグの中に私がのために:
私COUNTRであれば:
COUNTR [I] + = 1
他:
COUNTR [I] = 1
範囲内のiについて(10):
私COUNTRであれば:
印刷( "{}の数:{}" 形式(I、COUNTR [I]))
他:
印刷( "{}の数:{}" 形式(I、0))
しかし、getでより良い方法です。
COUNTR = {}
袋= [2、3、1、2、5、6、7、9、2、7]
バッグの中に私がのために:
COUNTR [I] = countr.get(I、0)+ 1
範囲内のiについて(10):
印刷( "{}の数:{}" 形式(I、countr.get(I、0)))
もちろん、あなたも代わりは、SetDefaultを使用することができます。
それはまた、よりシンプルですが、少し余分なコスト・アプローチを使用しました。
袋= [2、3、1、2、5、6、7、9、2、7]
COUNTR =辞書([(NUM、袋にnumのbag.count(NUM))])
範囲内のiについて(10):
印刷( "{}の数:{}" 形式(I、countr.get(I、0)))
また、dictの理解を使用することができます。
COUNTR = {NUM:袋にnumのbag.count(NUM)}
どちらの方法でも、彼らがリストにカウントが呼び出されるたびに横断する大きな支出されていることです。
8.ライブラリを使用
ちょうどあなたの既存のライブラリは、あなたが本当にやりたいことができますインポートします。
あるいは、前の例ということは、我々は回数にリストに表示される回数をカウントする機能を構築しました。さて、そのようなことを行うことができライブラリがすでに存在しています。
コレクションからカウンターをインポート
袋= [2、3、1、2、5、6、7、9、2、7]
COUNTR =カウンター(袋)
範囲内のiについて(10):
印刷( "{}の数:{}" 形式(I、COUNTR [I]))
ライブラリを使用するためのいくつかの理由:
コードは正しいとテストです。
彼らのアルゴリズムは最適で、とても高速に実行することがあります。
抽象化:彼らはクリアすると、文書に優しい、あなたはまだ実装されていないものに焦点を当てることができ指します。
最後に、それはすでにそこにある、あなたはリサイクルホイールを持っていません。
リスト9.、スライス/ステップ
あなたはこのリストのように[:停止:ステップを開始]、開始点を指定して、ポイントを停止することができます。私たちは、リスト内の5つの要素の前に削除しました:
バッグ= [0、1、2、3、4、5、6、7、8、9]
バッグ内のelemについて[:5]:
印刷(要素)
これは、スライスされ、我々はそれがリストから5つの要素を削除する前に停止、その後、停止点が5で指定します。
行う方法の最後の5つの要素があれば?
バッグ= [0、1、2、3、4、5、6、7、8、9]
バッグ内ELEMため[-5:]:
印刷(要素)
私はそれを理解していませんか?-5リストの最後から5つの要素を意味します。
あなたが要素にインターバル動作を一覧表示したい場合は、行う可能性があります:
バッグ= [0、1、2、3、4、5、6、7、8、9]
インデックスのため、列挙内のelem(袋):
もしインデックス%2 == 0:
印刷(要素)
しかし、あなたは、このようにそれを行う必要があります。
バッグ= [0、1、2、3、4、5、6、7、8、9]
袋の中のelemについて[:: 2]:
印刷(要素)
#または範囲を持ちます
バッグ=リスト(範囲(0,10,2))
印刷(袋)
これは、ステップのリストです。二段抽出要素にリストをトラバースしながらリスト[:: 2]を意味します。
あなたは[:: - 1]リストを使用することができひっくり返しリストを冷却します。
10.タブキーまたはスペースバー
予想外のインデント:長期には、タブとスペースミックスは、あなたがIndentationErrorが表示されます、災害になります。あなたは、タブキーやスペースキーを選択したかどうか、あなたはあなたのファイルやプロジェクトに維持する必要があります。
スペースの代わりにタブを使用する理由の1つは、タブは、すべてのエディタで同じではありません。それは、エディタの使用に依存して、タブを2-8スペースとして考えられるかもしれません。
コードを書くときにもスペースでタブを定義することができます。だから、タブとして、いくつかのスペースを使用するように選択することができます。4つのスペースのほとんどのPythonのユーザー。