List comprehensions and glob
Duncan Booth
me at privacy.net
Thu Jul 15 05:42:15 EDT 2004
Peter Otten <__peter__ at web.de> wrote in news:cd5gvg$l4u$06$1 at news.t-
online.com:
> Duncan Booth wrote:
>
>> If you want a list comprehension then how about:
>>
>> filenames = [ name for pat in PATTERNS for name in glob.glob(pat) ]
>
>>>> PATTERNS = ["*t", "*xt"]
>>>> filenames = [name for pat in PATTERNS for name in glob.glob(pat)]
>>>> len(filenames), len(sets.Set(filenames))
> (66, 39)
>
> Names that match more than one pattern will appear more than once in the
> list.
>
As indeed they do in the original posting. I assumed that either Robin
wanted that behaviour or knew it wasn't relevant (the example given had
non-overlapping patterns).
To remove duplicates just pass through a dictionary or a set:
filenames = dict.fromkeys(filenames).keys()
More information about the Python-list
mailing list