0

我是新程序员!我刚刚开始使用 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]

现在通过阅读下面的评论,我有点想切片可能无法产生我想要的东西?

4

2 回答 2

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]

于 2013-10-17T19:04:51.720 回答
0

(n python 2.7.3 我得到一个稍微有用的错误:

TypeError: cannot concatenate 'str' and 'list' objects

问题是您不能将[parameter2](整数列表)连接到parameter1[parameter2 + 1:](当是字符串时parameter1是字符串)。

字符串可以被切片,但它们不能与字符数组完全互换。

于 2013-10-17T19:06:24.583 回答