使用列表打印双列表的元素

时间:2017-05-25 01:42:25

标签: python-3.x

您好,我是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]]

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

2 个答案:

答案 0 :(得分:0)

一种直截了当的方式如下:

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

答案 1 :(得分:0)

您可以使用列表推导来实现这一点,我会像这样编码:

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

-1索引从doubleList获取每个列表的最后一个元素,然后检查它是否包含在ListNum中。

顺便说一句,如果ListNum的长度很大,那将是非常低效的。你可以做的是建立一个集合,以便在" in"在恒定时间内打电话。在python中它很简单:ListNumSet = set(ListNum),请记住它会删除重复项并且不支持索引。