为什么我收到此错误TypeError:list indices必须是整数或切片,而不是str

时间:2017-04-25 04:42:10

标签: python arraylist typeerror

我创建了一个名为'char'的字符列表我认为这段代码会比较用户输入,但我得到一个TypeError

while True:
    sorubir = input("Enter a  character  name: ")
    for i in char:
        if sorubir.upper() == char[i]:
            print (sorubir)
        else:
            sorubir = input("Try again. Enter a  character name: ")

2 个答案:

答案 0 :(得分:3)

for i in char已经引用了数组中的实际字符。我相信你认为i是它的索引。那将被写为for i in range(0, len(char)),其中我将采用索引值。

在您当前的代码中,只需将sorubir.upper() == char[i]更改为sorubir.upper() == i就行了!

答案 1 :(得分:0)

  

表示我在char:

除非它是一个数字列表,否则将返回存储在该索引中的数据。

例如你可能正在做

  

char ['foo']

这将返回您获得的错误类型。

而是尝试使用

  

表示范围内的i(len(char)):

这将为列表的每个索引返回一个整数。