Python: List vs Dict for look up table

Speed Lookups in lists are O(n), lookups in dictionaries are amortized O(1), with regard to the number of items in the data structure. If you don’t need to associate values, use sets. Memory Both dictionaries and sets use hashing and they use much more memory than only for object storage. According to A.M. Kuchling in … Read more

Is there a performance difference between a for loop and a for-each loop?

From Item 46 in Effective Java by Joshua Bloch : The for-each loop, introduced in release 1.5, gets rid of the clutter and the opportunity for error by hiding the iterator or index variable completely. The resulting idiom applies equally to collections and arrays: // The preferred idiom for iterating over collections and arrays for … Read more

Check if a string contains an element from a list (of strings)

With LINQ, and using C# (I don’t know VB much these days): bool b = listOfStrings.Any(s=>myString.Contains(s)); or (shorter and more efficient, but arguably less clear): bool b = listOfStrings.Any(myString.Contains); If you were testing equality, it would be worth looking at HashSet etc, but this won’t help with partial matches unless you split it into fragments … Read more

It is more efficient to use if-return-return or if-else-return?

Since the return statement terminates the execution of the current function, the two forms are equivalent (although the second one is arguably more readable than the first). The efficiency of both forms is comparable, the underlying machine code has to perform a jump if the if condition is false anyway. Note that Python supports a … Read more