在Python中,我有一个列表
list3 = ['PA0', 'PA1']
list2 = ['PB0', 'PB1']
list1 = ['PC0', 'PC1', 'PC2']
[(list1[i], list2[j], list3[k]) for i in xrange(len(list1)) for j in xrange(len(list2)) for k in xrange(len(list3))]
#Result
[('PC0', 'PB0', 'PA0'),
('PC0', 'PB0', 'PA1'),
('PC0', 'PB1', 'PA0'),
('PC0', 'PB1', 'PA1'),
('PC1', 'PB0', 'PA0'),
('PC1', 'PB0', 'PA1'),
('PC1', 'PB1', 'PA0'),
('PC1', 'PB1', 'PA1'),
('PC2', 'PB0', 'PA0'),
('PC2', 'PB0', 'PA1'),
('PC2', 'PB1', 'PA0'),
('PC2', 'PB1', 'PA1')]
我如何找到最后一次出现并添加E作为后缀
[('PC0', 'PB0', 'PA0'), ('PC0', 'PB0', 'PA1'), ('PC0', 'PB1', 'PA0'), ('PC0E', 'PB1', 'PA1'), ('PC1', 'PB0', 'PA0'), ('PC1', 'PB0', 'PA1'), ('PC1', 'PB1', 'PA0'), ('PC1E', 'PB1', 'PA1'), ('PC2', 'PB0', 'PA0'), ('PC2', 'PB0E', 'PA1'), ('PC2', 'PB1', 'PA0E'), ('PC2E', 'PB1E', 'PA1E')]
另一种方法是不断地添加索引,这样就可以得到最后一次出现的索引,itertools.产品还将为您创建初始列表:
从而得到预期的输出:
根据我的时间安排,这是使用数据的最快方法。你知道吗
其中m是:
如果您不是在这里寻找闪电速度,您可以执行以下操作:
下面是一个示例实现:
结果:
以相反的方式处理输入列表,然后首先标记出现的任何值。可以使用集合列表来跟踪已经看到的值。完成后反转生成的输出列表:
演示:
相关问题 更多 >
编程相关推荐