为什么我不能将此列表扩展到另一个列表

时间:2018-09-06 02:00:12

标签: python python-3.x list

def longest(s1, s2):
    combo = list(s1).extend(list(s2))
    print(combo)

为什么组合不成为s1和s2的串联列表?当我对其进行测试时,它会打印“无”。

2 个答案:

答案 0 :(得分:5)

方法list.extend使您的列表变异并返回None,因此您不想捕获其返回值。

还要注意,list.extend可以迭代,因此您无需将s2强制转换为list

def longest(s1, s2):
    s1.extend(s2)
    print(s1)

尽管如上所述,这会使您的列表s1发生变异,这可能会对函数产生副作用,但您可能希望通过串联来创建新列表。

def longest(s1, s2):
    combo = s1 + s2
    print(combo)

如果您使用的是Python3,则存在更整洁的语法。

def longest(s1, s2):
    combo = [*s1, *s2]
    print(combo)

答案 1 :(得分:0)

=是赋值运算符,它将其右侧的值分配给其左侧的变量。 时刻牢记这一点

如果只有 Sting Integer 列表,则很容易理解。由于它已经是一个值。您的情况是内置函数list.extend在右侧提供的值。因此我们都知道返回值始终为None,而不是list

对赋值运算符的基本了解将为您提供帮助。