Par*_*ius 502 python string iteration
在C++中,我可以迭代std::string这样:
std::string str = "Hello World!";
for (int i = 0; i < str.length(); ++i)
{
std::cout << str[i] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
如何在Python中迭代字符串?
has*_*sen 423
正如约翰内斯指出的那样,
for c in "string":
#do something with c
Run Code Online (Sandbox Code Playgroud)
您可以使用for loop构造在python中迭代几乎任何东西,
例如,open("file.txt")返回一个文件对象(并打开文件),迭代它迭代该文件中的行
with open(filename) as f:
for line in f:
# do something with line
Run Code Online (Sandbox Code Playgroud)
如果这看起来像魔术那么有点,但它背后的想法非常简单.
有一个简单的迭代器协议,可以应用于任何类型的对象,使for循环工作.
只需实现一个定义next()方法的迭代器,并__iter__在类上实现一个方法以使其可迭代.(__iter__当然,应该返回一个迭代器对象,即一个定义的对象next())
mar*_*cog 305
如果在迭代字符串时需要访问索引,请使用enumerate():
>>> for i, c in enumerate('test'):
... print i, c
...
0 t
1 e
2 s
3 t
Run Code Online (Sandbox Code Playgroud)
Joh*_*iss 88
更简单:
for c in "test":
print c
Run Code Online (Sandbox Code Playgroud)
And*_*eto 37
只是为了得到一个更全面的答案,迭代字符串的C方式可以应用于Python,如果你真的想要一个方形挂钩进入一个圆孔.
i = 0
while i < len(str):
print str[i]
i += 1
Run Code Online (Sandbox Code Playgroud)
但话又说回来,为什么字符串本身可以迭代?
for i in str:
print i
Run Code Online (Sandbox Code Playgroud)
如果您想使用一种更实用的方法来迭代字符串(也许以某种方式对其进行转换),您可以将字符串拆分为字符,对每个字符应用一个函数,然后将生成的字符列表重新连接回字符串。
字符串本质上是字符列表,因此“map”将迭代字符串 - 作为第二个参数 - 将函数 - 第一个参数 - 应用于每个字符。
例如,这里我使用简单的 lambda 方法,因为我想做的只是对字符进行简单的修改:这里,增加每个字符值:
>>> ''.join(map(lambda x: chr(ord(x)+1), "HAL"))
'IBM'
Run Code Online (Sandbox Code Playgroud)
或者更一般地说:
>>> ''.join(map(my_function, my_string))
Run Code Online (Sandbox Code Playgroud)
其中 my_function 接受一个 char 值并返回一个 char 值。
好吧,您也可以像这样做一些有趣的事情,并通过使用for循环来完成您的工作
#suppose you have variable name
name = "Mr.Suryaa"
for index in range ( len ( name ) ):
print ( name[index] ) #just like c and c++
Run Code Online (Sandbox Code Playgroud)
答案是
先生 。苏里亚
但是,由于range()创建的是序列值的列表,因此您可以直接使用名称
for e in name:
print(e)
Run Code Online (Sandbox Code Playgroud)
这也可以产生相同的结果,并且看起来更好,并且可以与列表,元组和字典之类的任何序列一起使用。
我们曾经使用过“内置函数”(Python社区中的BIF)
1)range()-range()BIF用于创建索引示例
for i in range ( 5 ) :
can produce 0 , 1 , 2 , 3 , 4
Run Code Online (Sandbox Code Playgroud)
2)len()-len()BIF用于找出给定字符串的长度