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')]]
我很感激任何建议,谢谢!!
答案 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
解压缩到列表l1
和l2
中迭代。最后,由于for
的子列表中的项目为my_list
,因此我会在生成新元组的同时解包这些tuples
':tuples
与{相同} {1}}。
请问是否有任何不清楚的地方。
希望这有帮助。