Which is more pythonic?

nn pruebauno at latinmail.com
Fri Dec 4 15:57:35 EST 2009


On Dec 3, 10:41 am, Filip Gruszczyński <grusz... at gmail.com> 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?
>
> --
> Filip Gruszczyński

First option is the most pythonic IMO. If it HAS to be one line I
would still prefer:

for choice in self.__choices: choicesBox.addItem(choice)



More information about the Python-list mailing list