2017-05-25 82 views
1

您好,我是新来的python,我正在处理双列表和列表。我有这样的双重名单:使用列表打印双列表的元素

doubleList = [['123', 'user1', 'its.zip', 1495212715.6226974], 
['123', 'user1', 'New Compressed (zipped) Folder.zip', 1495638517.22533], 
['123', 'user1', 'zippedtto.zip', 1495212754.2919347], 
['123', 'user2', 'Iam.zip', 1495212805.4040027], 
['acd', 'Letsee.zip', 1495478626.503554]] 

这单列表:

ListNum = [1495638517.212533, 1495212805.4040027, 1495478626.503554] 

我想改变我的双列表,使其包含其最后一个值是在LISTNUM若干元素。

在这种情况下我的输出是:

output = 
[['123', 'user1', 'New Compressed (zipped) Folder.zip',1495638517.22533], 
['123', 'user2', 'Iam.zip', 1495212805.4040027], 
['acd', 'Letsee.zip', 1495478626.503554]] 

任何帮助将高度赞赏。 谢谢!

+0

你是否假设1495638517.22533等于1495638517.212533 ?,是我能想到你的例子作品的唯一途径,是一个错字吗? –

+0

我的不好。这是一个错字。谢谢! – LearningEveryday

回答

0

一个简单的方法是如下:

output = [] 
for element in doubleList: 
    if element[3] in ListNum: 
     output.append(element) 
0

你可以使用列表理解来做到这一点,我想这样的代码是:

ans = [l for l in doubleList if l[-1] in ListNum] 

-1指标越来越最后然后检查它是否包含在ListNum中。

顺便说一句,如果ListNum的长度很大,它将是非常低效的。你可以做的是建立一个集合,以便在不断的时间内完成“in”调用。在Python中它很直接:ListNumSet = set(ListNum),请记住它删除重复项,不支持索引。