首页 > 解决方案 > 在 Python 中扩展项目级别的嵌套类列表

问题描述

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

因此,我有一个db_container由其他列表(“数据框类别”:)组成的列表alert1, alert2, alert3,其中包括实际的数据框(例如alert1,有 n 个不同的数据框,但那些总是具有相同的列名)

现在,我有一个问题来扩展我的初始db数据db_container

我的问题是扩展db数据框级别。

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

db并且db_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'))

谢谢。

标签: pythonlistnestedpickle

解决方案


我运行了您的代码,db_container = [1, 2, 3]并且在第二次通过时,观察到这db[1, 2, 3, [1, 2, 3]]我预期的一样。该列表没有 6 项:它有 4 项,最后一项是包含 3 项的列表。如果您打算将列表添加在一起,您应该使用db += db_container而不是使用 append,它需要一个项目。


推荐阅读