create lowercase strings in lists - was: (No subject)
steve at holdenweb.com
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]
.>>> [x for x in lst2 if x in dct1]
['ac', 'ab', 'bb']
Steve Holden http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/
Holden Web LLC +1 703 861 4237 +1 800 494 3119
More information about the Python-list