String building using join

gervaz gervaz at gmail.com
Fri Dec 31 10:22:26 EST 2010


Hi all, I would like to ask you how I can use the more efficient join
operation in a code like this:

>>> class Test:
...     def __init__(self, v1, v2):
...         self.v1 = v1
...         self.v2 = v2
...
>>> def prg(l):
...     txt = ""
...     for x in l:
...         if x.v1 is not None:
...             txt += x.v1 + "\n"
...         if x.v2 is not None:
...             txt += x.v2 + "\n"
...     return txt
...
>>> t1 = Test("hello", None)
>>> t2 = Test(None, "ciao")
>>> t3 = Test("salut", "hallo")
>>> t = [t1, t2, t3]
>>>
>>> prg(t)
'hello\nciao\nsalut\nhallo\n'

The idea would be create a new list with the values not None and then
use the join function... but I don't know if it is really worth it.
Any hint?

>>> def prg2(l):
...     e = []
...     for x in l:
...         if x.v1 is not None:
...             e.append(x.v1)
...         if x.v2 is not None:
...             e.append(x.v2)
...     return "\n".join(e)
...
>>> prg2(t)
'hello\nciao\nsalut\nhallo'

Thanks, Mattia



More information about the Python-list mailing list