我一直在尝试更深入地了解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方法可以正确修改指针指向的值。
我可能完全不满意,但是对此的任何澄清将不胜感激。谢谢。
答案 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]