Python TypeError:列表索引必须是整数,而不是str-迭代列表
我想这样做:Python TypeError:列表索引必须是整数,而不是str-迭代列表,python,Python,我想这样做: class Simple: @staticmethod def create(stuff): someString = '' for i in stuff: someString += stuff[i] print(someString) Simple.create(['Foo','Bar
class Simple:
@staticmethod
def create(stuff):
someString = ''
for i in stuff:
someString += stuff[i]
print(someString)
Simple.create(['Foo','Bar'])
-> FooBar
someString += str(stuff[i])
我尝试将其更改为如下字符串:
class Simple:
@staticmethod
def create(stuff):
someString = ''
for i in stuff:
someString += stuff[i]
print(someString)
Simple.create(['Foo','Bar'])
-> FooBar
someString += str(stuff[i])
但还是会出错。请提供帮助。当您使用
for in
循环时,i将等于对象本身,而不是索引。在python中,如果希望按索引进行迭代,则需要使用以下范围:
someString = ''
for i in range(len(stuff)):
someString += stuff[i]
print(someString)
当您使用
for in
循环时,i将等于对象本身,而不是索引。在python中,如果希望按索引进行迭代,则需要使用以下范围:
someString = ''
for i in range(len(stuff)):
someString += stuff[i]
print(someString)
你的问题是
东西[i]
。我不是一个整数,它是一个字符串
>>> x = ['hi', 'bye']
>>> for k in x:
... print k
...
hi
bye
>>>
相反,请将其更改为以下内容:
class Simple:
@staticmethod
def create(stuff):
someString = ''
for i in range(len(stuff)):
someString += stuff[i]
print(someString)
或:
第一个示例使用索引,第二个示例使用普通的
来表示循环。您的问题在于东西[i]
。我不是一个整数,它是一个字符串
>>> x = ['hi', 'bye']
>>> for k in x:
... print k
...
hi
bye
>>>
相反,请将其更改为以下内容:
class Simple:
@staticmethod
def create(stuff):
someString = ''
for i in range(len(stuff)):
someString += stuff[i]
print(someString)
或:
第一个示例使用索引,第二个示例使用普通的for
循环。问题在于访问stuff
中的元素的方式。以下代码正确执行此操作,解释如下:
class Simple:
@staticmethod
def create(stuff):
someString = ''
for element in stuff:
someString += element
print(someString)
当您使用Python时,与C/C++/Java等不同,用于循环时,您不使用索引。因此,当对['a',b',c']
中的i进行类似于的列表(或任何其他列表)的迭代时,i
的值将是iterable中的实际值。例如,在第一次迭代中,i
将是'a'
,而不是0
(如在第0个索引中)问题在于访问stuff
中元素的方式。以下代码正确执行此操作,解释如下:
class Simple:
@staticmethod
def create(stuff):
someString = ''
for element in stuff:
someString += element
print(someString)
当您使用Python时,与C/C++/Java等不同,用于循环时,您不使用索引。因此,当对['a',b',c']
中的i进行类似于的列表(或任何其他列表)的迭代时,i
的值将是iterable中的实际值。例如,在第一次迭代中,i
将是'a'
,而不是0
(如在第0个索引中)i
是字符串本身,它不是索引:someString+=i
谢谢!太简单了!:)循环中的一个简单的print(i)
会立即向您揭示这一点。另外'.join(stuff)
是连接iterable的首选方式。i
是字符串本身,而不是索引:someString+=i
谢谢!太简单了!:)循环中的一个简单的print(i)
会立即向您揭示这一点。另外'.join(stuff)
是加入iterable的首选方式。