我想在不同的功能之间共享列表,例如:
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])`
我希望知道一点,我想做什么。顺便说一句,我只是在配置文件中使用了随机名称。
答案 0 :(得分:1)
您遇到语义错误:
testlist.append = (['4'])
不正确: 如果只想附加“ 4”,则应使用:
testlist.append('4')
答案 1 :(得分:0)
加百列是对的。
第二个功能也要小心。 我认为您想附加'6'而不是['6']。
testlist.append('6')