Python 认为我的列表是一个元组?

标签 python list python-2.7 attributes tuples

我有一个名为 step_segment 的列表。它永远不应该是一个元组。

当我在 main 程序中按“7”时。我得到:

Traceback (most recent call last):
  File "G:\programming\python\new_globals.py", line 205, in <module>
    main()
  File "G:\programming\python\new_globals.py", line 203, in main
    pick_random(STATS, step_segment, seen, master)
  File "G:\programming\python\new_globals.py", line 125, in pick_random
    step_segment, STATS = take_step(step_segment, STATS)
  File "G:\programming\python\new_globals.py", line 69, in take_step
    step_segment.append(STATS)
AttributeError: 'tuple' object has no attribute 'append'

错误仅在调用 pick_random() 时发生:

def pick_random(STATS, seen, master):
    step_segment = []
    #if len(seen) >= 256:
    #   return seen, master
    while (len(step_segment)) < 128:
        step_segment, STATS = take_step(step_segment, STATS)
        if STATS[5] == "B":     # when there's a battle:
            randy = random.choice([0,1])
            if randy == 1:      # choose randomly between G and B
                step_segment = do_fight(step_segment, STATS)
            else:
                step_segment = do_glitch(step_segment, STATS)
            seen = seen + [STATS[0],STATS[5]]
    #if step_segment not in master:
        master.append(step_segment)
    time = get_frames(step_segment)
    print seen
    print time
    #return pick_random(STATS, seen, master)
    return seen, master

完整来源:http://pastebin.com/fZgqtxZn

最佳答案

do_flight() 返回一个二元组:

return step_segment, STATS

解压失败:

step_segment = do_fight(step_segment, STATS)

在此之后,step_segment 成为一个元组。

你可能打算写

step_segment, STATS = do_fight(step_segment, STATS)

作为一般性建议,您可能希望保持方法签名的一致性以避免此类错误和/或学习一些面向对象的编程,这样您就不必在任何地方都传递相同的变量。

关于Python 认为我的列表是一个元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406838/

相关文章:

python - 嵌套列表等值附加

jquery - 使用 jQuery 将列表项从一个列表复制到另一个列表

python - 如何在字典中的现有键中添加新值(而不丢失以前的值)?

python - 在 Scikit 中训练 SGDClassifier 时如何为特征赋予不同的权重?

python - py2app 应用程序正在运行,但 Mac OS X 显示它没有响应

python - 有人可以帮我在 pygame 中为扑克游戏创建一副纸牌吗

python - 计算 python 字典的特定键中值的数量

python - 将日期时间戳转换为本地纪元日期时间

python - 在 python 上创建登录页面

python - 替代 "write to file"使用 COPY 将 CSV 数据传输到 PostgreSQL 以获得更好的性能?