2013-11-27 40 views

回答

4

使用切片

print("9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"[::5]) 

输出:

>>> '9045e51f22550' 
+0

这比我的回答好。 –

0

您可以生成范围的推移任意增加通过传递第三个参数给它这样一个迭代器:

a = "1234567890" 

for x in range(0, len(a), 5): 
    print(a[x]) 

Dorvak和约恩建议切片标志。这更优雅。

1

range函数可以接受的增量:

x = "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" 

for i in range(0, len(x), 5): 
    print(x[i]) 

更新:如果你想输出为一系列的字符,你可以用生成器表达式:

>>> x = "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" 
>>> y = "".join(x[i] for i in range(0, len(x), 5)) 
>>> y 
'9045e51f22550' 
+0

这很好,虽然我应该指定我也希望输出作为一个字符序列。谢谢。 – Rezic

+0

已更新,但Yoann's/dorvak的答案当然更优雅。 –

0
teststring = "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"  

for num, letter in enumerate(teststring, 1): 
    if num % 5 == 0: 
     print letter 

枚举将从起始索引1开始计数,并且我们可以使用该索引打印整齐划一的字母5.

3

使用切片符号:

>>> "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"[::5] 

    '9045e51f22550' 

在结合打印:

>>> for i in "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"[::5]: 
... print i 
... 
9 
0 
4 
5 
e 
5 
1 
f 
2 
2 
5 
5 
0 
0
value = "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" 

for i in range(0,len(value),4): 

     print i