当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用Python迭代字符串中的每个字符》经验,为你挑选了5个好方法。

在C++中,我可以迭代std::string这样:

std::string str = "Hello World!";

for (int i = 0; i < str.length(); ++i)
{
    std::cout << str[i] << std::endl;
}

如何在Python中迭代字符串?



1> hasen..:

正如约翰内斯指出的那样,

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())

见官方文档


作为注释,反向迭代存档为:for c in reverse("string")

2> marcog..:

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

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


专业提示:它从零开始.如果你需要从一个开始:`1 t`,`2 e`,`3 s`,`4 t`使用参数"start":`for i,c in enumerate('test',start = 1 )`

3> Johannes Wei..:

更简单:

for c in "test":
    print c


@MauroVanetti几乎可以肯定是因为你使用的是Python 3,当我回答这个问题时,AFAIK只有Python 2.

4> Andrew Szeto..:

只是为了得到一个更全面的答案,迭代字符串的C方式可以应用于Python,如果你真的想要一个方形挂钩进入一个圆孔.

i = 0
while i < len(str):
    print str[i]
    i += 1

但话又说回来,为什么字符串本身可以迭代?

for i in str:
    print i


而不是你的第一个while循环,你可以这样做:for in in range(len(str)):print(str [i])在我看来,这比你自己管理计数器要好.更好的是marcog使用枚举的答案.

5> Mr. Suryaa J..:

好吧,您也可以像这样做一些有趣的事情,并通过使用for循环来完成您的工作

#suppose you have variable name
name = "Mr.Suryaa"
for index in range ( len ( name ) ):
    print ( name[index] ) #just like c and c++ 

答案是

先生 。苏里亚

但是,由于range()创建的是序列值的列表,因此您可以直接使用名称

for e in name:
    print(e)

这也可以产生相同的结果,并且看起来更好,并且可以与列表,元组和字典之类的任何序列一起使用。

我们曾经使用过“内置函数”(Python社区中的BIF)

1)range()-range()BIF用于创建索引示例

for i in range ( 5 ) :
can produce 0 , 1 , 2 , 3 , 4

2)len()-len()BIF用于找出给定字符串的长度

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有