[Python-de] Re: Code vereinfachen
Gerhard Häring
gerhard.haering at opus-gmbh.net
Fri Oct 11 09:37:38 EDT 2002
Ron Opitz <ron.opitz=lg8xjlp1sE8 at public.gmane.org> [2002-10-11 08:26 GMT]:
> Am Donnerstag, 10. Oktober 2002 17:42 schrieben Sie:
>> > for i in range(row):
>> > if row[i] is None:
>> > row[i] = ""
>> > else:
>> > row[i] = row[i].strip()
>> >
>> > oder kürzer:
>> >
>> > row = [col or "" for col in row]
>> >
>> > das setzt aber voraus, dass du in der Zeile nur None bzw. Strings hast.
>> > Ansonsten wandelt diese List Comprehension auch 0 in einen Leerstring um.
>
> wenn es nur so einfach wäre ...
>
> ich habe die Änderungen mal vollzogen, aber range verlangt als Endwert ein
> int. Der Rückgabewert der DB-Zeile (row) ist ein Tuple und da Tuples keine
> Methoden haben geht auch kein count() um die Anzahl der Elemente zu zählen.
Die Länge von Sequenzen ermittelst du mit der Builtin-Funktion len().
> Was nun? Hat einer eine Idee?
Mein "for i in range(row)" war falsch, es müsste stattdessen heißen
"for i in range(len(row))".
Außerdem wird das obere Beispiel nicht funktionieren, da Tupels immutable
(unveränderlich) sind. Du müsstest also zuerst das Tupel in eine Liste
verwandeln mit "row = list(row)". Das untere Beispiel mit der List
Comprehension würde trotzdem funktionieren.
--
Gerhard Häring
OPUS GmbH München
Tel.: +49 89 - 889 49 7 - 32
http://www.opus-gmbh.net/
More information about the Python-de
mailing list