1

除算エラーを回避するために、以下のリストの 0 の値を 1 に置き換えるにはどうすればよいですか?

_list=[0,1,2,3]
n=[]
for x in _list:
    if x ==0:
        print 1
    else:
        div=2.0/x
        n.append(div)

新しい値 (1) を分割に参加させたいと思います。助言がありますか?ありがとう。

4

4 に答える 4

1

これはどう:

[x/2.0 if x else None for x in _list]
=> [None, 0.5, 1.0, 1.5]

上記のリスト内包表記は、分割が発生したNone場所とともに、分割を含むリストを返し0/2ます。またはこれ:

[x/2.0 for x in _list if x]
=> [0.5, 1.0, 1.5]

上記は、0/2除算による値を回避します。問題に最も適したものを選択してください。

于 2013-10-02T18:54:25.927 に答える
0

_list で 0 を 1 に置き換えるだけなら、if ステートメントを変更するだけです。if x == 0: print 1 の代わりに、次のものが必要です。

for x in _list:
    if x ==0:
        x == 1
于 2013-10-02T19:07:50.593 に答える