首页 > 解决方案 > python .append() 替换列表的所有项目

问题描述

我的 python 代码有问题,我创建了一个名为 FileList 的列表,我想追加项目(文件),但是当我追加时,列表的所有项目都被追加的项目替换。我的代码:

from dataclasses import dataclass
import tkinter 

root = tkinter.Tk()
root.title("Ram Explorer")
root.geometry("1024x720")
root.minsize(1024, 720)
tklist = tkinter.Listbox(root, font=("Courrier", 25)) 
FilesList = []
CurrentDir = "/"
Dirs = []

@dataclass
class Meta:
    size: int
    type: str
    name: str
    ext: str
    
class File:
    Data = ""
    Metadata = Meta(0,None,None,None)
    def Read():
        return Data
        
    def Write(NewData):
        Data = str(NewData)
        
    def Append(AppendData):
        Data = Data + str(AppendData)
    

def Actualize(Dir):
    CurrentDir = Dir
    for i in range(len(FilesList)):
        tklist.insert(i, ":   " + str(FilesList[i].Metadata.name) + "." + str(FilesList[i].Metadata.ext))
        print( str(i) + ", " + FilesList[i].Metadata.name)
    tklist.pack(expand=1, fill=tkinter.BOTH)

def NewFile(Name, extention):
    Newfile = File
    Newfile.Metadata = Meta(0, "File", CurrentDir + str(Name), str(extention))
    print(Newfile.Metadata.name)
    FilesList.append(Newfile)
    for i in range(len(FilesList)):
        print( str(i) + ", " + FilesList[i].Metadata.name)

def NewDir(Name):
    Newdir = File
    Newdir.Metadata = Meta(0, "Directory", CurrentDir + str(Name), None)
    FilesList.append(Newdir)


NewFile("Hello1", "txt")
NewFile("Hello2", "txt")
NewFile("Hello3", "txt")
NewFile("Hello4", "txt")
NewFile("Hello5", "txt")
Actualize("/")
root.mainloop()

我明白了:

/Hello1 0, /Hello1 /Hello2 0, /Hello2 1, /Hello2 /Hello3 0, /Hello3 1, /Hello3 2, /Hello3 /Hello4 0, /Hello4 1, /Hello4 2, /Hello4 3, /Hello4 /Hello5 0, /Hello5 1, /Hello5 2, /Hello5 3, /Hello5 4, /Hello5 0, /Hello5 1, /Hello5 2, /Hello5 3, /Hello5 4, /Hello5

标签: pythonlisttkinterappend

解决方案


尝试使用:

Filelist.append("Any Value You Want")

推荐阅读