Filip GruszczyĆski wrote:
I have just written a very small snippet of code and started thinking, which version would be more pythonic. Basically, I am adding a list of string to combo box in qt. So, the most obvious way is:for choice in self.__choices: choicesBox.addItem(choice) But I could also do: map(self.__choices, choicesBox.addItem) or [choicesBox.addItem(choice) for choice in self.__choices] I guess map version would be fastest and explicit for is the slowest version. However, the first, most obvious way seems most clear to me and I don't have to care about speed with adding elements to combo box. Still, it's two lines instead of one, so maybe it's not the best. So, which one is?
Is .addItem() a function (returns a result) or a procedure (called for its side-effect, ie adding an item to a collection)? It's a procedure, so the first form is Pythonic. If it was a function then the third form would be Pythonic. The second form is what you would've done before list comprehensions were introduced. -- http://mail.python.org/mailman/listinfo/python-list
