我相对缺乏经验,来自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循环正确迭代字符串?
我一直在网上搜索,不知何故空手而归。对不起,如果这是一个愚蠢的询问。
答案 0 :(得分:1)
您的变量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 range(0, len(x))
。在这种情况下,您必须使用最初编写的内容(x[i]
)来访问该字母。
x = "test"
for i in range(0, len(x)):
print(x[i])
答案 1 :(得分:0)
如果您因某种原因确实需要循环索引,可以使用enumerate
:
x = 'test'
for i, c in enumerate(x):
print(i, x[i], c)
答案 2 :(得分:0)
这也让我有点了解,但我想我理解这种误解。 initialDiagnose
1 2010-04-02
2 2009-01-14
3 2005-09-22
4 2010-04-21
5 2010-01-28
6 2009-09-01
7 2005-03-28
8 2005-04-01
9 2005-04-01
10 2010-09-17
11 2010-03-01
中的i已经引用了字符,而不是索引。例如,写
for i in x
与写作相同
stringx='hello world
for i in stringx:
print stringx[i]