我正在尝试将我在python中列表中的所有数字放入函数中,但我一直得到一个int()参数必须是字符串或数字,而不是'list'错误,我做错了什么?猜猜是用户输入,必须是一个数字,而word2是他们试图通过猜测字母弄清楚的一个单词,如果他们得到一个正确的字母我希望它用实际的字母替换字母位置的下划线
check = [pos for pos, char in enumerate(word2) if char == guess]
check = [int(i) for i in check]
word2 = str.replace(word2, guess, "")
check2 = str.replace(b,"_"[int(check[:])], guess)
答案 0 :(得分:1)
check2 = str.replace(b,"_"[int(check[:])], guess)
check[:]
返回整个check
列表,因此int(check[:])
会尝试将列表转换为int,这就是您收到错误的原因。
即使转换为int成功,只要它不是0
或-1
,"_"[int(check[:])]
会提升IndexError
,因为{{1是一个长度为1的字符串。
您需要重新考虑代码的整个逻辑。