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的首选方式。