【问题标题】:Extending nested class lists on item level in Python在 Python 中扩展项目级别的嵌套类列表
【发布时间】:2019-06-13 17:32:53
【问题描述】:

我想设置一个包含“多个数据帧”的更新泡菜文件

因此,我有一个列表 db_container,其中包含其他列表(“数据框类别”:alert1, alert2, alert3),其中包括实际的数据框(例如,alert1 有 n 个不同的数据框,但它们始终具有相同的列名字)

现在,我在使用来自 db_container 的新数据扩展我的初始 db 时遇到问题

我的问题是在数据帧级别扩展 db

在我运行我的代码后,db 有 6 个项目,而不是最初的 3 个(alert1、alert2、alert3)。

dbdb_container 应该始终具有初始的 3 个“数据框类别”。

有什么建议吗?

def pickle_me():

    # Bind Lists of DataFrames into one Object
    db_container = [alert1, alert2, alert3]

    # if a db/pickle already exists then open old one and append with new input
    if os.path.exists(base_path+pickle_db):
       with open(base_path+pickle_db,'rb') as rfp:
          db = pickle.load(rfp)

          db.append(db_container) #-> After this code section db has 6 lists


    pickle.dump(db, open(base_path + pickle_db, 'wb'))

# If no db exists then create one.
else:
    pickle.dump(db_container, open(base_path + pickle_db, 'wb'))

谢谢。

【问题讨论】:

    标签: python list nested pickle


    【解决方案1】:

    我使用db_container = [1, 2, 3] 运行您的代码,在第二次通过时,发现db[1, 2, 3, [1, 2, 3]],正如我所料。该列表没有 6 项:它有 4 项,最后一项是包含 3 项的列表。如果您打算将列表添加在一起,则应使用 db += db_container 而不是使用 append,后者需要单个项目。

    【讨论】:

    • 感谢您的回答吉姆。啊,我忘了更改我的代码。我尝试了追加和扩展。会尝试你的方法,并会尽快让你知道。最佳最大值
    • 抱歉回复晚了!效果很好,谢谢!
    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2022-10-13
    • 2014-06-04
    • 1970-01-01
    • 2016-10-04
    • 2022-11-17
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多