create lowercase strings in lists - was: (No subject)

Steve Holden steve at
Thu Dec 16 18:51:41 CET 2004

Mark Devine wrote:

> Sorry for not putting a subject in the last e-mail. The function lower suited my case exactly. Here however is my main problem:
> Given that my new list is :
> [class-map match-all cmap1', 'match ip any', 'class-map match-any cmap2', 'match any', 'policy-map policy1', 'class cmap1', 'policy-map policy2', 'service-policy policy1', 'class cmap2']
> Each element in my new list could appear in any order together within another larger list (list1) and I want to count how many matches occur. For example the larger list could have an element 'class-map cmap2 (match any)' and I want to match that but if only 'class-map match-any' or 'class-map cmap2' appears I don't want it to match. 
> Can anybody help?
> Is my problem clearly stated?

Well, let's see: you'd like to know which strings occur in both lists, 

You might like to look at the "Efficient grep using Python?" thread for 
  suggestions. My favorite would be:

.>>> lst1 = ["ab", "ac", "ba", "bb", "bc"]
.>>> lst2 = ["ac", "ab", "bd", "cb", "bb"]
.>>> dct1 = dict.fromkeys(lst1)
.>>> [x for x in lst2 if x not in dct1]
['bd', 'cb']
.>>> [x for x in lst2 if x in dct1]
['ac', 'ab', 'bb']

Steve Holden     
Python Web Programming
Holden Web LLC      +1 703 861 4237  +1 800 494 3119

More information about the Python-list mailing list