Python交换字符串前两个字符时列表拼接报错如何解决?
报错原因分析
你代码中的拼接操作涉及不同类型的数据,触发了类型错误,具体错误点有两个:
xs[0]是单个字符串类型的值,而+左右两边必须都是列表才能拼接[xs[2:-1]]对切片结果额外套了一层方括号,会生成嵌套列表,就算类型匹配最终输出结构也不符合预期- 原代码中函数定义前有多余缩进,属于语法不规范问题
修复方案
你的需求是不修改原输入数据,只要在函数内直接构造新列表返回即可,全程不会修改原输入指向的内存数据,修改后的代码如下:
plant = 'blackberry' temp = list(plant) def switch(xs): # 所有片段都用列表类型拼接,全程不修改原xs的值 return [xs[1]] + [xs[0]] + xs[2:]
调用switch(temp)后会返回交换前两位的新列表,原temp变量的值保持不变,完全符合你的需求。
内容的提问来源于stack exchange,提问作者anonuser
相关产品推荐
相关产品推荐

