我是一名新程序员!我刚刚开始使用Python,我真的很喜欢它!但现在我偶然发现了一个我似乎无法理解的特定错误。
现在我不打算在这里发布我的确切代码,但这是基本的想法:
这是编辑过的代码:
def function(parameter1, parameter2):
return parameter1[parameter2 + 1:]
当我为参数1使用数字时,它运行正常,例如:
function([5,6,7,8,9], 3)
但是当我使用字母和数字时,例如:
function("ABC34",3)
它给出错误:
builtins.TypeError: Can't convert 'list' object to str implicitly
编辑:
好吧所以我基本上都在寻找这样的输出:
function([0,11,42,53,74,59,62,70,81,98], 3)
输出应该是:
[74, 59, 62, 70, 81, 98, 53, 0, 11, 42]
现在通过阅读下面的评论,我有点认为切片可能无法产生我想要的东西?
答案 0 :(得分:2)
字符串可以像列表一样进行迭代。因此,将其分解为函数的每个部分对字符串的作用:
左:
#parameter1[parameter2 + 1:]
'abc34'[3+1:]
Out[13]: '4'
中间:
#[parameter2]
[3]
Out[14]: [3]
右:
#parameter1[:parameter2]
'abc34'[:3]
Out[15]: 'abc'
然后你可以看到python不知道如何做'4' + [3]
。
答案 1 :(得分:0)
(n python 2.7.3我得到了一个更有帮助的错误:
TypeError: cannot concatenate 'str' and 'list' objects
问题是你无法将[parameter2]
(整数列表)连接到parameter1[parameter2 + 1:]
(当parameter1
是字符串时是一个字符串)。
字符串可以被切片,但它们不能与字符数组完全互换。