list 的初始化語法..
list initialization 有個簡單語法是這樣
>>> a = [2, 3, 4]
>>> [ i*2 for i in a ]
[4, 6, 8]
如果我想要有條件式的設定我的元素,那有辦法做到嗎 O_Q?
比方說我希望當 i < 10 的時候,我希望是設定 i + 10
像是這樣
>>> [ if i<10 : i+10 ; else : i for i in a ]
當然這個語法不會 work XD
如果不這樣寫,我可以用傳統的寫法
>>> result = []
>>> for i in a :
if i < 10 :
result.append(i+10)
else :
result.append(i)
或是
>>> def f(n) :
if i < 10 :
return i + 10
else :
return i
>>> [ f(i) for i in a ]
但是好像兩種都有麻煩到 XD
如果是 C++ 的話,我就可以這樣寫
>>> [ i<10?i+10:i for i in a ]
但是當然還是不 work XD
請問前輩有沒有比較偷懶的寫法阿?
因為我還蠻常要用到這樣的語句的,
實在不想為小功能寫三四行的程式...
--
To iterate is human, to recurse is divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.40
推
10/02 23:41, , 1F
10/02 23:41, 1F
→
10/02 23:41, , 2F
10/02 23:41, 2F
→
10/02 23:43, , 3F
10/02 23:43, 3F
→
10/02 23:43, , 4F
10/02 23:43, 4F
推
10/03 00:53, , 5F
10/03 00:53, 5F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
2
5
Python 近期熱門文章
PTT數位生活區 即時熱門文章