我正尝试从两个列表(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]
为什么列表理解不起作用?
答案 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在函数中或全局变量中都不存在。