我如何在Python中迭代一个字符串(从字符串中获得每个字符,一次一个,每次通过循环)?
当前回答
如果在遍历字符串时需要访问索引,请使用enumerate():
>>> for i, c in enumerate('test'):
... print i, c
...
0 t
1 e
2 s
3 t
其他回答
这里有几个答案使用了range。Xrange通常更好,因为它返回一个生成器,而不是一个完全实例化的列表。当内存和或可迭代对象的长度大不相同时,xrange是更好的选择。
如果你曾经在需要使用__next__()获取单词的下一个字符的情况下运行,请记住创建一个string_iterator并遍历它而不是原始字符串(它没有__next__()方法)
在这个例子中,当我找到一个char =[我一直在寻找下一个单词,而我没有找到],所以我需要使用__next__
在这里,对字符串进行for循环是没有用的
myString = "'string' 4 '['RP0', 'LC0']' '[3, 4]' '[3, '4']'"
processedInput = ""
word_iterator = myString.__iter__()
for idx, char in enumerate(word_iterator):
if char == "'":
continue
processedInput+=char
if char == '[':
next_char=word_iterator.__next__()
while(next_char != "]"):
processedInput+=next_char
next_char=word_iterator.__next__()
else:
processedInput+=next_char
更简单:
for c in "test":
print c
您还可以执行以下操作:
txt = "Hello World!"
print (*txt, sep='\n')
这并不使用循环,但内部打印语句照顾它。
*将字符串解包到一个列表中并将其发送给print语句
Sep ='\n'将确保下一个字符打印在新行上
输出将是:
H
e
l
l
o
W
o
r
l
d
!
如果你确实需要一个循环语句,那么就像其他人提到的,你可以像这样使用for循环:
for x in txt: print (x)
只是做一个更全面的回答,如果你真的想把一个方钉子塞进一个圆洞里,可以在Python中应用C语言迭代字符串的方式。
i = 0
while i < len(str):
print str[i]
i += 1
但话说回来,当字符串本质上是可迭代的时,为什么要这样做呢?
for i in str:
print i