0

我有一个列表,其中包含我试图插入基本 URL 的字符串。然而,我对列表推导的尝试失败了,我不知道为什么。这是我的代码,它会引发错误:TypeError: cannot concatenate 'str' and 'list' objects

input_tokens = self.token_input.GetValue()
token_list = [input_tokens.split('\n')]

url_front = 'https://www.example.com/foo.cgi?token='
url_back = '&user=bar%40email.com'

url = [url_front + s + url_back for s in token_list]

我在这里做错了什么?

4

2 回答 2

2

这就是问题:

token_list = [input_tokens.split('\n')]

它应该是:

token_list = input_tokens.split('\n')

使用括号,您正在构建一个包含单个元素的列表(在本例中是另一个列表)。

于 2013-09-16T22:12:02.803 回答
2

通过将 input_tokens.split('\n') 括在方括号中,您已将 token_list 初始化为列表列表。删除它们, split() 将返回一个您可以通过列表理解来理解的一维列表。

如果 input_tokens = "one\ntwo\nthree",则 token_list 被初始化为 [["one","two","three"]]。

于 2013-09-16T22:13:24.323 回答