2016-04-22 64 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