根据索引将有序列表中的项插入元组

时间:2017-05-19 14:30:10

标签: python nlp

mylist=[[('The','d'),('apple','n'),('is','v'),('red','a')],[('I','p'),('feel','v'),('fine','adv')]]

这是一个元组列表的列表,我希望创建一个新的元组列表,并相应地添加另一个列表中的信息。

new_list=[['b','i','o','o'],['o','o','o']]

对于这两个列表的每个子列表,我有完全相同的项目数,如图所示,我希望将new_list中第一个列表的第一个字符串添加到my_list中第一个列表的第一个元组,第二个字符串new_list中的第一个列表到my_list中第一个列表的第二个元组,依此类推。

理想的输出看起来像这样

output=[[('The','d','b'),('apple','n','i'),('is','v','o'),('red','a','o')],[('I','p','o'),('feel','v','o'),('fine','adv','o')]]

我很感激任何建议,谢谢!!

1 个答案:

答案 0 :(得分:0)

基本上这个问题已在其他地方得到解答,所以我将问题标记为重复,但假设您是python的新手,这里是您问题的解决方案。

output = [[(*t,c) for t,c in zip(l1,l2)] for l1,l2 in zip(mylist,new_list)]

使用列表嵌套列表推导(创建列表列表)创建新output。要将两个列表中的相应项目匹配在一起,您可以使用zip,它会返回这些相应项目的tuples生成器。循环遍历这些for的{​​{1}}循环将它们解压缩为两个单独的项目,即

tuples

for l1,l2 in zip(mylist,newlist) mylist的子列表组合在一起,然后在newlist期间将for解压缩到列表l1l2中迭代。最后,由于for的子列表中的项目为my_list,因此我会在生成新元组的同时解包这些tuples':tuples与{相同} {1}}。 请问是否有任何不清楚的地方。

希望这有帮助。