Python如何仅用列表推导式合并嵌套列表与对应扁平列表元素
问题原因
你原来的写法错误点在于,你将lst1的每个子列表单独和完整的lst2做zip()配对,会出现子列表第一个元素配lst2第一个元素、第二个配第二个的情况,自然得到你不符合预期的['ax', 'by', 'cz']结果。
实现方案
完全可以仅用列表推导式实现,提供两种写法:
写法1:用enumerate取索引(符合你的思路)
output = [[x + lst2[i] for x in sublist] for i, sublist in enumerate(lst1)]
通过enumerate拿到lst1每个子列表对应的索引,让第一个子列表统一拼lst2[0]、第二个拼lst2[1]即可。
写法2:直接配对子列表和后缀(更简洁,无需索引)
output = [[x + suffix for x in sublist] for sublist, suffix in zip(lst1, lst2)]
直接把lst1的子列表和lst2的拼接字符一一配对,内层统一给当前子列表所有元素加上对应后缀。
内容的提问来源于stack exchange,提问作者sudden_clarity_clarence
相关产品推荐
相关产品推荐

