作者: 機械伯爵
日時: 2004/3/11(21:48)
 ども、機械です。

>>     lambda x,y:re.sub(y[0],y[1],x),[
>は lambda x,y:re.sub(y[0],y[1],x),[str で確認してOK でした。
>リストを頭からなめていき、x y として、その結果を x とし、次を y
>として繰り返すということですね。

 初期値を入れるの忘れてました・・・(大歩危・・・は四国)

 なかなかマスターするのが難しいです→reduce

>> ]=[wd(x):for x in (
>こういった書き方がいいのでしょうか?例えば
>
>[ ...
> ....
> ..... ]
>= [
>
>とか
>[ ...
> ....
> ..... ] =
>[
>
>いかがでしょうか。

 試してみればわかりますが、

[...]
=[...]

 や、

[...]=
[...]

 はエラーが出ます。

 Pythonでは基本的に改行はステートメントの終了を意
味するので、左辺や右辺の無い'='はエラーとなります。

 その例外が[](){}といったカッコの類で、この中では
改行は空白に置き換えられます。

 逆にいえば、Pythonの式を改行付きで綺麗に整えたけ
れば、カッコに囲めば良いということになります。

 atoiを使ってる辺り、C言語を使われた経験がある方だ
と思いますが、PythonはCと異なり可読性を高めるため、
あえてフリーフォーマット方式を採用していません。

※これがPythonが敬遠される一つの理由ですが・・・

 ただ、それだけだと要素の多いリストを書く時などは、
かえって見づらくなるので、カッコの中は例外的にフリー
フォーマットに近い形で記述できるようになっています。

<エラーになる>
a=
1
+
2


<エラーにならない>
a=(
1
+
2
)


 一種の裏技ですが、簡単に使えますのでお試しくださ
い。

   /機械伯爵/