您好,我是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 :(得分: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)
,请记住它会删除重复项并且不支持索引。