我有一个列表,其中包含我尝试插入基本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]
我在这里做错了什么?
答案 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”]]。