【发布时间】:2018-09-21 11:57:35
【问题描述】:
所以我有一个清单:
my_list1 = ["p1", "p2", "p4", "p1"]
我还有另一个包含子列表的列表:
my_list2 = [[1,"p1"], [1,"p2"], [1,"p3"], [1,"p4"], [2, "p1"], [2, "p2"], [2, "p3"], [2, "p4"]]
现在我想做的是:
我想遍历my_list1,然后遍历my_list2,并创建一个新列表,其中包含my_list1 中my_list2 中每个元素的下一次出现。
即我想要得到的是:
new_list = [[1, "p1"], [1, "p2"], [1, "p4"], [2, "p1"]]
我已经尝试过以下方法:
new_list = []
for i in my_list1:
for j in my_list2:
if i in j[1]:
new_list.append(j)
这给了我
new_list = [[1,"p1"], [1,"p2"], [1,"p4"], [2, "p1"], [2, "p2"], [2, "p4"]]
所以,我再次需要的是,每次迭代都只附加 my_list2 中项目的下一次出现。
我是 Python 新手,所以请温柔一点。我非常感谢任何建议!
【问题讨论】:
-
你的意思是list2中每一项的第一次出现?
-
不,我的意思是,前 n 次出现。 n 在某种意义上由列表 my_list1 确定。对于“p1”,应附加前两次出现。
-
对于第一个
p1,我需要第一次出现,对于第二个p1,我需要第二个(......等等......)