如何在Python中将多行代码写成一行?

时间:2014-02-20 17:48:23

标签: python multiline

我使用的应用程序不允许使用新行,因此对于此示例,我需要将代码写为一行。

我尝试了分号字符,但我不知道如何处理for loops。我是否必须在分号后添加空格,或者我可以在没有空格的情况下拼写语句?对于for循环,我应该使用单个空格,4个空格还是仅使用选项卡?我不确定应用程序是否会保留标签,但新行会成为单个空格。

所以我需要这样做:

statement1;statement2;forloop:;for_loop_statement1;statement3

编辑:实际代码:

nums = [substring.split(',') for substring in s.split()]
for row in nums:
    row[1] = '0'
return ' '.join(','.join(row) for row in nums)

2 个答案:

答案 0 :(得分:2)

这可能是解决问题的更好方法(使用or__setitem__更改row的内容)。要更改要替换的项目,只需将1中的row.__setitem__(1, '0')更改为您想要的任何索引。

def foo(s):
    nums = [substring.split(',') for substring in s.split()];return ' '.join(','.join(row.__setitem__(1, '0') or row) for row in nums)

print foo('a,b,c d,e,f, g,h,i')

<强>输出:

a,0,c d,0,f, g,0,i

这是有效的,因为__setitem__就地工作,因此总是返回None。由于row.__setitem__(1, '0') or row中的第一个语句是None,因此or之后的表达式的结果(即row,这就是我们想要的)。

答案 1 :(得分:0)

来自我的终端命令行:

>>> x=1;y=2
>>> x
1
>>> y
2
>>> for i in range(1,5):print(i);pass
... 
1
2
3
4
>>>