2012-04-06 9 views
0

非常に基本的な質問ですが、私はいつもこれを悪い実装しています。pythonでリストのすべての要素を減算して除算する

私はintのリストを持っています。

for ele in foo_list: 
    ele = (ele - k)/j 

この事はかなり見えるようにするニシキヘビの糖衣構文があります:

そしてその後、私はこのような何かをしたいint型「K」と「J」

を持っています。 はまた、私は...このような悪い感じは非常に悪い方法やバグの傾向がある持って

はそうあなたが入力を取り、あなたの出力がに保存されている操作を

val = function(val) 

を行うには、それが安全ですこのメソッドは、ある時点で "Gotcha"になることはできますか?またはこれらの操作を行うことは安全ですか? ありがとう

ありがとうございます。

答えて

3

あなたのコードは

foo_list = [ (ele - k)/j for ele in foo_list] 

編集する必要があります:あなたの2つ目の質問に答えるために、val = f(val)で結構です。しかし、あなたがそれを使用しようとしている方法はうまくいきません:eleは、リスト内の要素へのポインタではなく、その要素を指し示す変数名です。他に何かを割り当てると、その変数名が別の場所を指しています。あなたが指している場所に書き込むのではありません。いつものように

+0

ああ内包表記の当たり前の一覧を表示!!ありがとう:) – Fraz

+1

これは[list comprehension](https://www.youtube.com/watch?v=t85uBptTDYY)です。 '' x = f(x) ''を実行することはまったく問題ないことにも気づくはずです。 –

+0

@Lattyware:alrighty .. :)ありがとう。Pythonの問題は分かりにくいかもしれません。 – Fraz

1

またはマップ:

foo_list = map(lambda ele: (ele-k)/j,foo_list) 
+3

'' lambda''を使う必要があるところでは '' map() ''は遅くなり、(もっと重要なことに)読みにくくなるので、comps(またはgenerator/dict/set comps)必要に応じて)。 '' map() ''は一般的には本当に単純なものにしか役に立ちません。 –

+0

はい、私は地図をオペレータモジュールと一緒に使用したいと思います – luke14free

関連する問題