【问题标题】:is there any python tip or trick for double loop to compre list?双循环比较列表是否有任何python提示或技巧?
【发布时间】:2014-05-10 11:51:51
【问题描述】:

如果 path_list 中的 pattern_list 项,我想制作“list”。 但我可以认为双循环..双循环有什么python技巧或技巧吗?

pattern_list = ['vendor', 'device']
path_list = [
...,
'a/b/c/hardware/',
'a/b/c/device/',
'a/b/c/vendor/',
...,
]

【问题讨论】:

  • 你能更好地解释你想做什么吗?很不清楚
  • 你的问题真的没有多大意义,你肯定想形成一个包含你的模式的路径列表吗?而不是路径列表中的模式列表?

标签: python list loops compare


【解决方案1】:
result = [x for x in pattern_list for y in path_list if x in y ]

这是你需要做的吗? 这些被称为列表推导。你可以在里面放多少个for和if。你可以在这里阅读更多关于它们的信息:https://docs.python.org/2/tutorial/datastructures.html

【讨论】:

  • 请提供至少一些解释以及您的答案。重点不是给出答案,而是要解释发生了什么。谢谢。
  • 这样更好,现在 OP 真的可以理解是怎么回事了。
  • 对不起,这是第一个问题,我不知道,谢谢,稍后我会做,
【解决方案2】:

您也可以使用filter 和any 函数:

>>> filter(lambda path: any(p in path for p in pattern_list), path_list)
['a/b/c/device/', 'a/b/c/vendor/']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多