[问题] 该如何改写一行的 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