作者icoach (Nee)
看板Python
標題[問題] 該如何改寫一行的 FOR 迴圈
時間Sat May 31 20:49:18 2014
下面function是讀取某個檔案到集合內
如果現在想要改成
有顏色標記那一行改寫成
mylist(*[if(len(line) > 10 line.strip() for line in fp)])
系統就會報錯 , 想請問如果想要達成小弟想要的功能
該如何改寫呢? 謝謝
def Loadlist(self, file):
print "Loadlist"
if os.path.isfile(file):
fp = open(file , 'r')
mylist=()
self.Loadlist =
mylist(*[line.strip() for line in fp])
fp.close()
return
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.142.232.94
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Python/M.1401540561.A.888.html
1F:→ uranusjr:line.strip() for line in fp if len(line) > 10 (?) 05/31 20:52
2F:→ uranusjr:說真的你也沒講你想要的功能是什麼, 請不要打啞謎謝謝 05/31 20:52
3F:→ icoach:不好意思 就是想在那個中括號裡面 可以多判斷長度的功能 05/31 21:02
4F:→ darkgerm:一樓正解 05/31 22:03
5F:→ icoach:謝謝一樓 結果是對的 感謝 另外想請問 *該怎麼解釋呢? 06/01 00:31
7F:推 lc85301:一樓大神(worship) 06/01 06:33
8F:→ icoach:謝謝各位幫忙 06/01 08:04
9F:→ icoach:再請問 若是要在條件不成立時 印出line 又開如何改寫呢? 06/01 08:15
10F:→ icoach:試著加在 if 後面 或是 line.strip()後面都秀invalid synta 06/01 08:17
11F:→ uranusjr:line.strip() if len(line)>10 else line for line in fp 06/01 10:56