gpt4 book ai didi

python - 如果来自子字符串列表,则从列表中删除字符串

转载 作者:太空狗 更新时间:2023-10-30 00:10:37 25 4
gpt4 key购买 nike

我想知道什么是最 pythonic 的方式:

拥有一个字符串列表和一个子字符串列表,删除包含任何子字符串列表的字符串列表的元素。

list_dirs = ('C:\\foo\\bar\\hello.txt', 'C:\\bar\\foo\\.world.txt', 'C:\\foo\\bar\\yellow.txt')

unwanted_files = ('hello.txt', 'yellow.txt)

期望的输出:

list_dirs = (C:\\bar\\foo\.world.txt')

我曾尝试实现类似的问题,例如this ,但我仍在努力进行删除并将该特定实现扩展到列表。

到目前为止,我已经这样做了:

for i in arange(0, len(list_dirs)):
if 'hello.txt' in list_dirs[i]:
list_dirs.remove(list_dirs[i])

这行得通,但可能不是更简洁的方法,更重要的是它不支持列表,如果我想删除 hello.txt 或 yellow.txt,我将不得不使用 or。谢谢。

最佳答案

使用 list comprehensions

>>> [l for l in list_dirs if l.split('\\')[-1] not in unwanted_files]
['C:\\bar\\foo\\.world.txt']

使用split获取文件名

>>> [l.split('\\')[-1] for l in list_dirs]
['hello.txt', '.world.txt', 'yellow.txt']

关于python - 如果来自子字符串列表,则从列表中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com