You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python将元组列表元素分类到两个独立列表的代码异常求助

问题根源分析

你的代码错误出在列表拼接的操作上:
Python中list += 可迭代对象会把可迭代对象里的每一个元素逐个追加到列表中,而字符串本身就是可迭代对象,所以你执行good += items[i][0]的时候,相当于把字符串"foo"拆成了'f'、'o'、'o'三个独立字符存入good列表,而不是把整个"foo"作为一个元素存入列表。你输出时如果取alpha[0]自然就只会得到'f'。

解决方法

有两种改法都可以实现你的需求:

  • 方法1:用append()方法追加单个元素,这是最符合需求的写法,同时可以优化遍历逻辑,无需按索引取值
lst = [("foo", "good"), ("bar", "bad"), ("x", "n")]

def sort(items):
    good = []
    bad = []
    for item in items:
        if item[1] == 'good':
            good.append(item[0])
        else:
            bad.append(item[0])
    return good, bad

alpha, beta = sort(lst)
  • 方法2:如果要保留+=的写法,需要把要添加的字符串包装成列表,比如good += [items[i][0]],这样+=会把整个列表里的唯一元素追加到目标列表中。

修改后运行代码,alpha的结果就会是['foo'],符合分类存储的预期。

内容的提问来源于stack exchange,提问作者user14611431

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:06:03