【问题标题】:Check if item of list is in [x][0] of other list with comprehension检查列表项是否在其他列表的 [x][0] 中并理解
【发布时间】:2019-07-10 23:05:33
【问题描述】:

这个让我发疯。 第一个列表包含不带扩展名的文件名。例如:

afilenames = [file1, file2, file3]

第二个列表包含带扩展名的文件名:

bfiles = [[file1, .exe], [file2, .txt], [file4, ini]]

我知道想得到一个列表,它从 afilenames 中返回文件,其中包含在 bfiles 中。

预期结果:

[file1, file2]

这是我的尝试,但它只是返回废话:

[afile for afile in afilenames for bfile in bfiles if afile in bfile[0]]

【问题讨论】:

  • 你确定吗?我对此进行了测试,它返回了预期的结果。

标签: python list compare exists dimensional


【解决方案1】:

这应该做你想做的事

files = [file for file, _ in bfiles if file in afilenames]

【讨论】:

    【解决方案2】:
    x = [a for a in afilenames for b in bfiles if a == b[0]]
    

    您的版本也适用于您提供的示例。

    x = [afile for afile in afilenames for bfile in bfiles if afile in bfile]
    

    这也有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-03
      • 2013-12-23
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2012-08-26
      相关资源
      最近更新 更多