将列表中的项连接到两个字符串

时间:2013-09-16 22:10:33

标签: python list concatenation

我有一个列表,其中包含我尝试插入基本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]

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

这是问题所在:

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

应该是:

token_list = input_tokens.split('\n')

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

答案 1 :(得分:2)

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

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