有人可以为这个示例解释.extend()的工作原理吗?

时间:2019-07-08 18:32:02

标签: python list

我一直在尝试更深入地了解Python列表的工作方式。并对其作为参数可以接收和不能接收的内容感到困惑。

def foo(i: int, lst: list): -> list
    [i].extend(lst) #nothing happens
    ([i]).extend(lst) #nothing happens
    (list((i,i)).extend(lst) #nothing happens
    var_list = [2,2]    
    new_lst_3 = var_list.extend(lst) # this works

我的理论是,其中一些列表方法仅在变量指向类型列表时才对参数起作用,因为它们不返回值。由于指针将指向列表,因此list方法可以正确修改指针指向的值。

我可能完全不满意,但是对此的任何澄清将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:2)

您正在使用的extend()方法使列表被调用。您评论的每一行中都发生了一些事情;问题是在前三行中,您将结果丢掉了。

[i].extend(lst)  # Creates a temporary list [i], adds the elements of lst, and 
                 # then... the list disappears because it's not assigned to a variable
([i]).extend(lst)  # Ditto
(list((i,i)).extend(lst)  # Same again

var_list = [2,2]    
new_lst_3 = var_list.extend(lst) # Adds the elements of lst to var_list, and you can see the changes

答案 1 :(得分:1)

这里是使用扩展的示例。因此,我们的想法是您有一个列表,并且想要将另一个列表添加(扩展)到原始列表中。对extend的调用未返回

lst = [1,2]
lst.extend([3,4])
print(lst)

输出

[1,2,3,4]