如何在不同功能之间将列表共享为列表而不是元组?

时间:2018-10-18 16:48:40

标签: python list

我想在不同的功能之间共享列表,例如:

def function1():
    testlist = ['1','2','3']
    testlist.append = ('4')
    print(testlist)
    return testlist 

def function2():
    testlist = function1()
    print(testlist)
    testlist.append('6')

问题是,一旦我想使用例如list.append编辑列表,错误消息“ tuple”对象就没有属性“ append”。即使testlist在function2中仍具有正确的输入。这就是为什么我不知道为什么列表在两个函数之间正确传递的原因,但作为元组而不是列表的原因。有没有一种方法可以将变量改回列表或将其作为列表传递?

我已经知道我可以在课堂中更轻松地传递列表。但是对于我要编程的应用程序来说,这门课程非常重要。我已经看到了这个Question,其中讨论的问题与此类似。但是使用这些解决方案,我仍然无法在其他功能中编辑列表。
谢谢你的帮助。

要澄清问题,代码是:

代码为:
`

def function1():
    cfg = yaml.load(yamlfile)
    testlist = []
    list2 = []
    for x in cfg['y']
        list2.append([x, str(cfg['y'][x]['z']), cfg['g']['d'] + '\\'])
        for c in cfg['y'][x]['z']:
            if cfg['x'][y]['z'][c]['abc']:
                list2.append([str(cfg['y'][x]['z'][c]['abs'])])
    return testlist, list2
def function2():
    testlist = function1()
    list2 = function1()
    for i in range(len(list2)):
    testlist.append(list2[i][0])`

我希望知道一点,我想做什么。顺便说一句,我只是在配置文件中使用了随机名称。

2 个答案:

答案 0 :(得分:1)

您遇到语义错误:

testlist.append = (['4'])

不正确: 如果只想附加“ 4”,则应使用:

testlist.append('4')

答案 1 :(得分:0)

加百列是对的。

第二个功能也要小心。 我认为您想附加'6'而不是['6']。

testlist.append('6')