Dirk Hagemann wrote:
Hi!
I have a list of lists and in some of these lists are elements which I
want to change.
Here an example:
lists=[('abc', 4102, 3572), ('def', 2707, 'None'), ('ghi', 'None', 4102)]
'None' should be replaced by 0 or NULL or something else.
Your list is a list of tuples, and what you want here is to replace an
element of a tuple - which is not directly possible since tuples are
immutables (but of course there's a way... !-)
But as far as
I know the replace function of the module string does not work for
lists.
Nope, but you can still replace or modify an element of a list.
here a (very Q&D and probably naive and suboptimal) possible solution:
def my_replace(alist, target, replacement):
"""Takes a list of tuples and for each tuple
'replace' target with 'replacement
"""
for i, t in enumerate(alist):
l = list(t)
while target in l:
l[l.index(target)] = replacement
alist[i] = tuple(l)
my_replace(lists, 'None', 'NULL')
HTH
--
bruno desthuilliers
ruby -e "print 'o****@xiludom.gro'.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'o****@xiludom.gro'.split('@')])"