Python函数返回列表后添加至列表的结果不符合预期求助
问题分析
你的代码里,something()返回的是完整列表['note'],而b_list.append(c)会把这个列表作为单个元素添加到b_list中,最终得到嵌套列表[['note']],和预期不符。
解决方案
有两种常用方法可以得到你想要的结果:
方法1:使用extend()替代append()
extend()会将传入的可迭代对象(比如列表)中的每个元素逐个添加到目标列表里,而非把整个对象作为单个元素添加。修改后的代码:
def something(): a_list = [] a_list.append("note") return a_list def main(): b_list = [] c = something() b_list.extend(c) # 替换为extend print(b_list) main()
方法2:直接合并列表
用+=操作符直接合并两个列表,效果和extend()一致:
def something(): a_list = [] a_list.append("note") return a_list def main(): b_list = [] c = something() b_list += c # 直接合并列表 print(b_list) main()
运行上述任意一种修改后的代码,都会输出['note'],符合预期。
内容的提问来源于stack exchange,提问作者bob
相关产品推荐
相关产品推荐

