2016-04-22 65 views
0

我有這樣的代碼:如何在for循環中打印某個索引?

for x in range(1,10): 
    print x[1],x[5] 

顯然,這是行不通的,所以我想知道如何在打印某個索引一個for循環而不做:

for x in range(1,10): 
    if x == 1: 
     print x 
    if x == 5: 
     print x 

謝謝!

回答

3

使用枚舉:

for i, v in enumerate(range(10)): 
    if i == 5: 
     print(i) 

我喜歡上面的方法,因爲它是可讀的,並將它作爲你的要求。

如果你真的想把這一行,你可以做這樣的事情,但是,再次,上面的方法絕對沒有錯。

print(' '.join([str(i) for i, _ in enumerate(range(10)) if i in (1, 5)])) 
+0

反正只使用一條線路,比如'打印X [指數]'? – TCG

+0

不,尤其是沒有打印我相信。此外,並非所有事情都必須始終適合一條線。可讀性非常重要。 – idjaw

+0

是的,但我想用1到9個數字使用一個for-loop在其中,一行代碼會使它好多很多 – TCG

3

不知道你想和這個做什麼,但在這裏是一個選項

for idx,val in enumerate(range(1,10)): 
    if idx in {1, 5}: 
     print idx, val # print both the index and the value 
+0

謝謝,但我想如果它只有一行像'print x [index]' – TCG

+0

你不能在單行'print'語句AFAIK中使用條件。而'x [index]'沒有意義,因爲'x'不是可轉位的 –

+0

這只是一個例子,反正謝謝 – TCG