[英]How to properly iterate through a for loop with python
我相对缺乏经验,来自c#。 我试图遍历一个字符串,并使用for循环分别打印出每个字母。
在c#中,如果我没记错的话,将这样写:
string x = test;
foreach(i in x)
{
print(x[i]);
}
但是在python中,当我键入
x = "test"
for i in x:
print(x[i])
python shell告诉我我必须是整数。
我实际上很确定我的语法在我的C#示例中是不正确的,但是要解决这个问题:
我如何在Python中使用for或foreach循环正确地迭代字符串?
我一直在搜索网络,以某种方式空手而归。 抱歉,这是一个愚蠢的询问。
您的变量x
是字符串类型,因此,当您键入x[i]
您将在位置i
处获得字母。
但是,在循环中,您会有所不同:
x = "test"
for i in x:
print(x[i])
这个for循环( for i in x
)意味着: 对于字符串x中的每个字母i
,请执行以下操作 。 因此,您的i
变量实际上是一个字母,而不是整数。
因此,要打印字符串x
每个字母,只需使用print(i)
:
x = "test"
for i in x:
print(i)
但是,如果您确实希望i
为整数,而不是for i in x
中for i in x
,请使用for i in range(0, len(x))
。 在这种情况下,您将必须使用最初写的内容( x[i]
)访问该字母。
x = "test"
for i in range(0, len(x)):
print(x[i])
如果出于某种原因确实想要循环索引,可以使用enumerate
:
x = 'test'
for i, c in enumerate(x):
print(i, x[i], c)
这也让我有点理解,但是我想我理解了误解。 for i in x
中for i in x
已经引用了字符,而不是索引。 例如写
stringx='hello world for i in stringx: print stringx[i]
与写作相同
print stringx['h']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.