2014-06-21 22 views
0

比方說,我有一個簡短的循環是這樣的:如何在一條線上安裝短循環?

for i in range(10): 
    print "Hello" 

如何,如果可能的話,我可以適應這種在同一行?

+3

你爲什麼想要?在這種情況下,您可以內聯單行語句塊,只需一行即可。 –

+0

閱讀https://docs.python.org/2/reference/compound_stmts.html中的第一部分;你可以在複合語句下「內聯」簡單的語句。你不能這樣做。 –

回答

3

如何,如果可能的話,我可以適應這種在同一行?

可以只是將它放在一行:

for i in range(10): print "Hello" 

但是,這並不做你多,並違背約定。 (readability counts!)時,您不應該嘗試將許多東西塞到一條線上。

順便說一句,通常_用作當從未需要它的循環體循環控制變量:

for _ in range(10): 
    print "Hello" 
+0

使循環變小的唯一方法是,如果腳本中有許多小循環,則可以關閉所有循環,這只是縮短代碼的一種方法。 –

+2

@SomeGuy行數減少有什麼好處?你*真的*應該偏愛可讀性而不是短小。 – arshajii

1

只需在:後面加上聲明即可。

for i in range(10): print "Hello" 
1

選擇 - 使用map

(您標記它的Python 2.7,所以我們最初沒有打印功能)

假設您想對列表中的每個元素應用一個函數,map將循環。

>>> from __future__ import print_function 
>>> lst = ["a", "b", "c"] 

現在我已經定義爲一個功能print並有列表遍歷:在打印的情況下

>>> map(print, lst) 
a 
b 
c 
[None, None, None] 

[None, None, None] is list of results, which is None`。返回列表花費一些時間。根據結果​​的進一步使用,它可能是小的優點或缺點。

請注意,在Python 3中map的行爲有點不同,它返回特殊類型的結果map必須強制迭代,例如,通過撥入list致電。但這不在你的問題的範圍內。

+0

這也可以用print_function和'[print('hello')for _在range(10)]中實現' –

+0

@TimCastelijns爲什麼你會喜歡用普通的'for'循環呢?你正在使用列表理解的副作用。這個答案使用地圖的副作用,我也認爲是不好的。 – arshajii

+0

@arshajii我不知道,只是想提出另一種方式來獲得這個結果:-) –