Python拼接列表时join操作给每个字符而非列表项加分隔符问题
问题成因
代码的核心问题是调用join前错误地将整个子列表转为了字符串:
self.result[i]本身是[0, 'bss', 0, 'ssid']这个子列表,使用str(self.result[i])会把它转为完整的字符串"[0, 'bss', 0, 'ssid']"str.join()方法要求传入可迭代对象,字符串本身属于可迭代对象,会被按单个字符拆分遍历,因此最终是在每个字符之间插入斜杠,得到错误输出。
修复方案
需要先把子列表里的每个元素单独转为字符串,再传给join拼接,对应修改代码行即可:
把原来的
ncos_path = '/'.join(str(self.result[i]))
替换为:
ncos_path = '/'.join(str(item) for item in self.result[i])
修改后运行即可得到预期输出0/bss/0/ssid。
内容的提问来源于stack exchange,提问作者spickles
相关产品推荐
相关产品推荐

