Python TypeError:列表索引必须是整数或片,而不是str#num设置为int

Python TypeError:列表索引必须是整数或片,而不是str#num设置为int,python,Python,我不断地发现这个错误: 31, in <module> check_store[(abcd[int(num)])] = (com_que_store[int(num)]) TypeError: list indices must be integers or slices, not str 我不能100%确定您在代码中试图做什么。但从我所能告诉你的,这会做你想要它做的。如果您打算让它做其他事情,请发表评论 我整理了很多资料。并将循环的最后一个更改为循环到com_que_存储

我不断地发现这个错误:

31, in <module>
    check_store[(abcd[int(num)])] = (com_que_store[int(num)])
TypeError: list indices must be integers or slices, not str

我不能100%确定您在代码中试图做什么。但从我所能告诉你的,这会做你想要它做的。如果您打算让它做其他事情,请发表评论

我整理了很多资料。并将循环的最后一个
更改为循环到com_que_存储中的所有值以检查_存储。我相信这不是您代码的全部意图,但是现在您可以更容易地将其添加到您的使用中

from random import randint, shuffle

run = True
num = 0
diff = int(input('Pick a number from 1-3: '))

if not diff <= 3 and diff >= 1:
    print('Make sure your number is from 1 to 3')
    raise TypeError

que_1 = 'wright 1'
que_2 = 'wrong 2'
que_3 = 'wrong 3'
que_4 = 'wrong 4'

que_store = [que_2, que_3, que_4]
com_que_store = [que_1]
check_store = []
abcd = ['A', 'B', 'C', 'D']

for i in range(diff):
    r = randint(0, (2 - num))
    print(que_store[r])
    com_que_store.append(que_store[r])
    que_store.pop(r)
    num = num + 1

print(com_que_store)
shuffle(com_que_store)
print('\n\n\n')
print(com_que_store)

for value in com_que_store:
    print value
    check_store.append(value)
    num = num + 1
从随机导入randint,洗牌
运行=真
num=0
diff=int(输入('从1-3中选择一个数字:'))
如果不差=1:
打印('确保您的号码从1到3')
提高打字错误
que_1=‘wright 1’
que_2=‘错误的2’
que_3=‘错误的3’
que_4=‘错误的4’
que_商店=[que_2,que_3,que_4]
com_que_store=[que_1]
检查存储=[]
abcd=['A','B','C','D']
对于范围内的i(差异):
r=randint(0,(2-num))
打印(que_存储[r])
com_que_store.append(que_store[r])
奎乌商店流行音乐(右)
num=num+1
打印(com_que_商店)
洗牌(com_que_商店)
打印('\n\n\n')
打印(com_que_商店)
对于com_que_商店中的值:
打印值
检查\u store.append(值)
num=num+1

请格式化您的代码。这很难理解。突出显示它并按ctrl+k。好的,
check\u store
是一个列表,您可以使用
str
的元素对其进行索引。另外,你应该避免过度使用括号。谢谢,我怎样才能把它改成整数呢?谢谢,多亏了你,我修复了我的代码。它是大型程序的一部分,这只是我代码的一部分。我的问题是一个愚蠢的错误,我将check_score设置为一个列表,我正试图制作一本字典,只是无意中使用了错误的括号。感谢您的帮助,我意识到我的代码可以更高效、更好。谢谢你,山姆。
from random import randint, shuffle

run = True
num = 0
diff = int(input('Pick a number from 1-3: '))

if not diff <= 3 and diff >= 1:
    print('Make sure your number is from 1 to 3')
    raise TypeError

que_1 = 'wright 1'
que_2 = 'wrong 2'
que_3 = 'wrong 3'
que_4 = 'wrong 4'

que_store = [que_2, que_3, que_4]
com_que_store = [que_1]
check_store = []
abcd = ['A', 'B', 'C', 'D']

for i in range(diff):
    r = randint(0, (2 - num))
    print(que_store[r])
    com_que_store.append(que_store[r])
    que_store.pop(r)
    num = num + 1

print(com_que_store)
shuffle(com_que_store)
print('\n\n\n')
print(com_que_store)

for value in com_que_store:
    print value
    check_store.append(value)
    num = num + 1