猿问

如何使用内联列表更新作为函数参数?

我有一个列表,该列表中附加了一个值,然后使用新列表来调用函数,我想在一行中执行此操作,但无法正常工作...


list = ['a', 'b']

my_funtion(list.append('c'))

my_function收到了一个None包含三个字母的列表,这是正确的,因为来自 doc:


def append(self, p_object):

    """ L.append(object) -> None -- append object to end """

    pass

如果我这样做,它会工作:


list = ['a', 'b']

list.append('c')

my_funtion(list)

我想知道是否有办法用我的原始示例来简化代码。


一只萌萌小番薯
浏览 123回答 2
2回答

阿波罗的战车

您可以使用:L = ['a', 'b'] my_funtion(L + ['c'])它将单项列表['c']与L列表连接起来以创建一个新列表['a', 'b', 'c']作为 的参数my_function。由于这会创建一个新列表,L调用者中的原始列表不会受到连接或函数内对其执行的更改的影响。如果您想使用添加的元素永久改变原始列表并将其通过引用传递给您的函数,请append在进行函数调用之前坚持使用原始方法。请注意,在您的原始示例中,当您调用变量时list,您已经重新定义了内置函数list(),该函数将可迭代对象转换为列表,因此在选择变量名称时请务必谨慎。

倚天杖

在python中,参数被定义为函数被调用时提供给函数的值。type(list.append())返回一个Nonetype。在该线程中对此进行了解释什么是“ NoneType”对象?。据我所知,python 中没有内置的 list 方法返回修改后l + ['c']的列表。@ggorlen 的简短回答可能是最好的,因为返回一个列表。或者您可以编写自己的 append 函数
随时随地看视频慕课网APP

相关分类

Python
我要回答