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

看板Python作者 (Nee)時間11年前 (2014/05/31 12:49), 編輯推噓2(209)
留言11則, 5人參與, 最新討論串1/1
下面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://www.ptt.cc/bbs/Python/M.1401540561.A.888.html

05/31 20:52, , 1F
line.strip() for line in fp if len(line) > 10 (?)
05/31 20:52, 1F

05/31 20:52, , 2F
說真的你也沒講你想要的功能是什麼, 請不要打啞謎謝謝
05/31 20:52, 2F

05/31 21:02, , 3F
不好意思 就是想在那個中括號裡面 可以多判斷長度的功能
05/31 21:02, 3F

05/31 22:03, , 4F
一樓正解
05/31 22:03, 4F

06/01 00:31, , 5F
謝謝一樓 結果是對的 感謝 另外想請問 *該怎麼解釋呢?
06/01 00:31, 5F

06/01 00:46, , 6F

06/01 06:33, , 7F
一樓大神(worship)
06/01 06:33, 7F

06/01 08:04, , 8F
謝謝各位幫忙
06/01 08:04, 8F

06/01 08:15, , 9F
再請問 若是要在條件不成立時 印出line 又開如何改寫呢?
06/01 08:15, 9F

06/01 08:17, , 10F
試著加在 if 後面 或是 line.strip()後面都秀invalid synta
06/01 08:17, 10F

06/01 10:56, , 11F
line.strip() if len(line)>10 else line for line in fp
06/01 10:56, 11F
文章代碼(AID): #1JYS_HY8 (Python)