为什么此列表理解无效?

时间:2019-10-28 20:51:05

标签: python python-3.x list-comprehension

我正尝试从两个列表(a和b)创建一个新的嵌入列表,如下所示:

list_a = ['abc','def','opq']
list_b = [1,2]
resulting_list = 
[['abc',1,2],
 ['def',1,2],
 ['opq',1,2]]

我在下面的函数中尝试了列表理解,但是没有返回预期的结果。

def combine_list(list_a, list_b):
    return [[post].extend(list_b) for post in list_a]

我希望返回:

[['abc',1,2],
 ['def',1,2],
 ['opq',1,2]]

相反,我得到了

[None, None, None]

为什么列表理解不起作用?

3 个答案:

答案 0 :(得分:4)

extend是一个变量。它修改左侧的列表,但不返回任何内容。列表理解应该坚持功能性,无副作用的操作。

[[post] + list_b for post in list_b]

然后将post_list更改为list_b

答案 1 :(得分:0)

首先,它不应该是post_list。

>>> [[post]+list_b for post in list_a]
[['abc', 1, 2], ['def', 1, 2], ['opq', 1, 2]]

答案 2 :(得分:-1)

def combine_list(list_a, list_b):
return [[post].extend(list_b) for post in post_list]

因为post_list在函数中或全局变量中都不存在。