如何合并元组或将列表转换为元组?

时间:2011-07-26 23:02:53

标签: python django merge append

我有一个元组,INSTALLED_APPS,我想将额外的项目合并到其中,以便在不更改主设置文件的情况下获取元组中的本地应用程序。我走到这一步:

DEFAULT_APPS = list(INSTALLED_APPS)
MY_APPS_LIST = DEFAULT_APPS.append('south')

但是如果我尝试通过运行:

再次将其转换为元组
INSTALLED_APPS = tuple(MY_APPS_LIST)

我明白了:

TypeError: 'NoneType' object is not iterable

问题是相当基本的我会说,但我真的找不到这个“方法”,甚至任何对我都有用的方法......我确实发现了list()和tuple Django shell中的()返回该类型的空对象,所以我不明白TypeError可能来自哪里......

帮助表示赞赏!

4 个答案:

答案 0 :(得分:8)

append不会返回新列表 - 它会修改原始列表,返回None。你想要MY_APPS_LIST = DEFAULT_APPS + ['south']

答案 1 :(得分:3)

list方法就地运行,因此返回None。如果要将另一个元素添加到现有列表并仅返回结果,则只需添加它们。

MY_APPS_LIST = DEFAULT_APPS + ['south']

答案 2 :(得分:3)

请注意,可以使用+来连接元组,因此如果INSTALLED_APPS是元组:

INSTALLED_APPS = DEFAULT_APPS + ('south',)

INSTALLED_APPS将是一个元组,其中'south'为最后一个元素

答案 3 :(得分:1)

list.append方法不会返回您追加的列表。这是一种就地方法。你应该做的

DEFAULT_APPS = list(INSTALLED_APPS)
DEFAULT_APPS.append('south')
MY_APPS_LIST = DEFAULT_APPS