2008年4月29日 星期二

Python 版的 switch case

其實一直不太清楚為什麼 Python 內建的語法會沒有 switch/case 的用法,所以這時候只好自己做一下了

如果本來在 C 裡會寫這樣:

x = 0;
switch (value) {
case 1:
x += 1;
break;
case 2:
x *= 5;
break;
...
}

那在 Python 裡可以寫成這樣:
x  = 0
{
1: lambda y: y += 1,
2: lambda y: y *= 5
...
}[value](x)


簡單地說就是用 dictionary 來作。

3 意見:

Unknown 提到...

感謝無私的分享!: D

Ben Wang 提到...

我都直接用if else 就好了

Powentan的世界 提到...

在lambda y : y += 1那邊是不是應該改成lambda y : y + 1還有lambda y : y * 5
我試了一下好像這樣才能得到相同的結果