我的目标是让每个{结果的单个元素}作为方法的参数或赋值的值传递。
剩余 = 'abc def ghi jkl' 令牌=[]
从概念上讲,我想
(tokens.append(),tokens.append(), 剩余的) = 剩余的.partition(空白)
备选方案 1:这就是我所做的:
(t1,t2,剩余)=剩余。分区(空白)
令牌.append(t1)
令牌.append(t2)
备选方案 2:非常难看,因为“繁重”的不必要的重复处理,在这种情况下,就是分区:
[(tokens.append(t1), tokens.append(t2), remaining) for t1 in (remaining.partition(' ')[0],) for t2 in (remaining.partition(' ')[1],)留在 (remaining.partition(' ')[2],) ]
备选方案 3:仍然丑陋,但在概念上更接近:
t=remaining.partition('')
[(tokens.append(t1), tokens.append(t2), remaining) for t1 in (t[0],) for t2 in (t[1],) for remaining in (t[2],) ]
这里的技巧是在“for”之前使用方法调用,在“in”之前使用单个项目列表。单项列表中的逗号,例如 (t[0],) 必须跟在唯一项之后。逗号不能放在它前面。