[問題] 該如何改寫一行的 FOR 迴圈

作者: icoach (Nee)   2014-05-31 20:49:18
下面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
作者: uranusjr (←這人是超級笨蛋)   2014-05-31 20:52:00
line.strip() for line in fp if len(line) > 10 (?)說真的你也沒講你想要的功能是什麼, 請不要打啞謎謝謝
作者: icoach (Nee)   2014-05-31 21:02:00
不好意思 就是想在那個中括號裡面 可以多判斷長度的功能
作者: darkgerm (黑駿)   2014-05-31 22:03:00
一樓正解
作者: icoach (Nee)   2014-06-01 00:31:00
謝謝一樓 結果是對的 感謝 另外想請問 *該怎麼解釋呢?
作者: ckclark (大資佬)   2014-06-01 00:46:00
作者: lc85301 (pomelocandy)   2014-06-01 06:33:00
一樓大神(worship)
作者: icoach (Nee)   2014-06-01 08:04:00
謝謝各位幫忙再請問 若是要在條件不成立時 印出line 又開如何改寫呢?試著加在 if 後面 或是 line.strip()後面都秀invalid synta
作者: uranusjr (←這人是超級笨蛋)   2014-06-01 10:56:00
line.strip() if len(line)>10 else line for line in fp

Links booklink

Contact Us: admin [ a t ] ucptt.com