Python 3.x 使用列表打印双列表中的元素

Python 3.x 使用列表打印双列表中的元素,python-3.x,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

大家好,我是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]]
任何帮助都将不胜感激。
谢谢大家!

一个简单的方法是:

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

一种简单的方法是:

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

您可以使用列表理解来实现这一点,我将这样编码:

ans = [l for l in doubleList if l[-1] in ListNum]
-1索引从doubleList中获取每个列表的最后一个元素,然后检查它是否包含在ListNum中


顺便说一句,如果ListNum的长度很大,那么效率会很低。您可以做的是构建一个集合,以便在固定时间内进行“in”调用。在python中,它很简单:
ListNumSet=set(ListNum)
,请记住它会删除重复项,并且不支持索引。

您可以使用列表理解来实现这一点,我会这样编写代码:

ans = [l for l in doubleList if l[-1] in ListNum]
-1索引从doubleList中获取每个列表的最后一个元素,然后检查它是否包含在ListNum中


顺便说一句,如果ListNum的长度很大,那么效率会很低。您可以做的是构建一个集合,以便在固定时间内进行“in”调用。在python中它很简单:
ListNumSet=set(ListNum)
,请记住它删除重复项,不支持索引。

您是否假设1495638517.22533等于1495638517.212533?,这是我认为您的示例有效的唯一方法,是打字错误吗?我的错。这是个打字错误。谢谢你是否假设1495638517.22533等于1495638517.212533?这是我认为你的例子有效的唯一方法,是打字错误吗?我的错。这是个打字错误。谢谢