如何在python中定义全局列表并向其附加本地列表

如何在python中定义全局列表并向其附加本地列表,python,list,onclick,append,global,Python,List,Onclick,Append,Global,我想定义一个全局列表并向其附加一个列表。我通过一些点击事件得到一个列表(I[0]),并将其附加到mnum_列表中。现在,我想创建一个全局列表,并将mnum_列表附加到其中。你知道怎么做吗 def OnClick(self, event): name = event.GetEventObject().GetLabelText() cursor= self.conn.execute("SELECT * FR

我想定义一个全局列表并向其附加一个列表。我通过一些点击事件得到一个列表(I[0]),并将其附加到mnum_列表中。现在,我想创建一个全局列表,并将mnum_列表附加到其中。你知道怎么做吗

def OnClick(self, event):                                       
    name = event.GetEventObject().GetLabelText()
    cursor= self.conn.execute("SELECT * FROM ELEMENT where SYMBOL==?", (name,))
    elements = cursor.fetchall()
    print elements
    cursor= self.conn.execute("SELECT ATOMIC_NUMBER FROM ELEMENT where SYMBOL = ?", (name,))
    numbers = cursor.fetchone()[0]
    print numbers
    atomicnumber = numbers
    cursor= self.conn.execute("SELECT MOL_NUMBER FROM LINK where ELEMENT_NUMBER = ?", (atomicnumber,))
    mnumbers = cursor.fetchall()
    print mnumbers
    mnum_list = []
    for i in mnumbers:
         mnum_list.append(i[0])
    print mnum_list

如果没有赋值,则无需在
global
语句中,只需:

def foo(x):
    sublist = range(x)
    glist.append(sublist)
在延期的情况下:

def foo(x):
    sublist = range(x)
    glist.extend(sublist)

您可以在文件/模块级别声明它,如下所示: 我的全局列表=列表()

当你想在一个函数中附加到它时,你可以使用global关键字。 global关键字告诉python查找全局变量

全局我的全球列表


MyuGlobal列表.AppEnter()/P>一个旁注的可能副本:我个人认为全局变量是一个设计缺陷,如果可能的话,我会不惜一切代价避免它们。@ MPF82-,你的评论好像全局变量本身是错误的;他们不是。对于全局变量,例如“常量”值,存在完全有效的用例。当您开始尝试使用全局变量作为状态时,您就开始得到意大利面代码。@mpf82:OP试图操纵全局变量。他们可以这样做,而不必知道如何使用

global
,因为全局名称没有赋值。如果您在模块级别有一个全局列表(
some\u global\u list=[]
),那么只需引用它来附加到它:
some\u global\u list.append(mnum\u list)
。变异一个全局对象就这么简单。变异一个全局对象不涉及赋值,所以
glist
行是完全冗余的。扩展不需要
+=
,只需使用
glist.extend()
(而
+=
需要
全局
语句)。对,感觉它只需简单地完成工作。抱歉,我是新手!这里的子列表是mnum_列表?不,它不工作!当我打印glist时,它不会给我任何输出,在修改对象时,您不需要使用
global
。这仅在分配给全局名称时才需要。这起作用,但没有解决我的问题!谢谢,我还要问另一个问题