【问题标题】:find all strings in a list that end with查找列表中所有以结尾的字符串
【发布时间】:2021-01-14 08:02:07
【问题描述】:

对于给定的列表:

list = ['enwiki-latest-stub-meta-history.xml.gz', 'enwiki-latest-stub-meta-history.xml.gz-rss.xml',
'enwiki-latest-stub-meta-history1.xml.gz', 'enwiki-latest-stub-meta-history1.xml.gz-rss.xml', 
'enwiki-latest-stub-meta-history10.xml.gz', 'enwiki-latest-stub-meta-history10.xml.gz-rss.xml', 
'enwiki-latest-stub-meta-history11.xml.gz', 'enwiki-latest-stub-meta-history11.xml.gz-rss.xml', 
'enwiki-latest-stub-meta-history12.xml.gz', 'enwiki-latest-stub-meta-history12.xml.gz-rss.xml']

我想生成一个新列表,其中包含所有以 .gz 结尾的字符串

我试过这些:

generated_list = [l for l in list if re.compile(r".gz$") in l]

generated_list = [file.endswith('.gz') for file in files]

generated_list = [file for file in files if '.gz' in file]

上述方法似乎都不起作用,第二种方法有效但只产生布尔值。

【问题讨论】:

  • [file for file in files if file.endswith('gz')]

标签: python string list list-comprehension


【解决方案1】:

解决这个问题的正确方法是了解列表理解的工作原理。

generated_list = [file for file in files if file.endswith('.gz')]

【讨论】:

    【解决方案2】:
    generated_list = [ file for file in list if file.endswith(".gz")]
    

    【讨论】:

    • 一般来说,如果答案包含对代码的用途的解释,以及为什么在不介绍其他人的情况下解决问题的原因,答案会更有帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2013-08-23
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多