使用 Python 迭代字符串中的每个字符

新手上路,请多包涵

如何在 Python 中 迭代 字符串(从字符串中获取每个字符,一次一个,每次通过一个循环)?

原文由 Paradius 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 403
2 个回答

正如约翰内斯所指出的,

 for c in "string":
    #do something with c

您可以使用 for loop 构造在 python 中迭代几乎任何东西,

例如, open("file.txt") 返回一个文件对象(并打开文件),遍历它会遍历该文件中的行

with open(filename) as f:
    for line in f:
        # do something with line

如果这看起来像魔术,那么它有点像,但它背后的想法真的很简单。

有一个简单的迭代器协议可以应用于任何类型的对象,以使 for 循环在其上工作。

只需实现一个定义 next() 方法的迭代器,并在一个类上实现一个 __iter__ 方法以使其可迭代。 ( __iter__ 当然应该返回一个迭代器对象,也就是定义了 next() 的对象)

见官方文档

原文由 hasen 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果在遍历字符串时需要访问索引,请使用 enumerate()

 >>> for i, c in enumerate('test'):
...     print i, c
...
0 t
1 e
2 s
3 t

原文由 moinudin 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏