def longest(s1, s2):
combo = list(s1).extend(list(s2))
print(combo)
为什么组合不成为s1和s2的串联列表?当我对其进行测试时,它会打印“无”。
答案 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
。
对赋值运算符的基本了解将为您提供帮助。