繁体   English   中英

如何使用python正确遍历for循环

[英]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 xfor 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 xfor i in x已经引用了字符,而不是索引。 例如写

stringx='hello world for i in stringx: print stringx[i]与写作相同

print stringx['h']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM