如何定义字符串与列表通用拼接函数?switcheroo列表适配问题求解
问题原因
你编写的代码出现列表场景运行失败的核心原因是+运算符两侧类型不匹配:
- 传入字符串时,
test[0]、test[1]返回的是单个字符,本身属于字符串类型,和后续切片test[2:](字符串类型)拼接完全合法 - 传入列表时,
test[0]、test[1]返回的是列表内部的单个元素,类型和列表本身不一致,无法直接和test[2:](列表类型)执行加法运算,因此会抛出类型错误。
修复方案
将取单个元素的写法替换为切片写法,切片返回的结果永远和原输入的类型一致,无需额外添加类型判断即可同时兼容字符串、列表两种输入:
def switcheroo(test): return test[1:2] + test[0:1] + test[2:]
效果验证
- 字符串输入:传入
"abc",返回结果为"bac",符合预期 - 列表输入:传入
[1,2,3],返回结果为[2,1,3],符合预期
内容的提问来源于stack exchange,提问作者anonuser
相关产品推荐
相关产品推荐

