Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich stehe wieder voll auf dem Schlauch. Für `dicts` gibt es die .item() Funktion um an die einzelnen Elemente zu kommen. Gibt es etwas vergleichbares für Listen?
Wie löse ich eine geschachtelte Liste in einzelne Strings auf? Folgender Code bringt das zwar, ist aber über Mehrfachschleifen viel zu umständlich.
keylist = [['text1'], ['text2', 'text3'], ['text4']]
new = list()
for i in keylist:
if len(i) >= 2:
for a in i:
new.append(a)
else:
new.extend(i)
keylist = new
Estwas vergleichbares für `dict.item()` für Listen um an die Elemente heran zu komme? Die Frage verstehe ich nicht. An die Elemente von Listen kommt man doch so schon direkt heran!?
Die verschachtelten Schleifen sind in der Tat viel zu umständlich:
ok nachdem ich um den Brei rumprogrammiert habe ... wie peinlich. Danke Blackjack
Ich habe noch ein kleines Verständnisproblem mit Lambda Fkt.
Frage : Kann man innerhalb von lambda über eine Liste iterieren? Also prüfe ob ein Element aus Liste 1 in Liste 2 ist und gib das Element zurück. auf einen Prüfwert (liste1[0]) gesehen so:
Ich verstehe die Frage nicht so ganz. Was genau soll geprüft werden? Und was soll dann zurückgegeben werden? Jede Funktion muss irgend etwas zurück geben.
In dem Quelltext vermute ich mal, dass ein Wahrheitswert zurück gegeben werden muss, der entscheidet ob `value` ein gewünschter Wert ist, oder nicht.
class Item(__builtin__.object)
| Item object
|
| Methods defined here:
|
| __cmp__(...)
| x.__cmp__(y) <==> cmp(x,y)
|
| __delitem__(...)
| x.__delitem__(y) <==> del x[y]
|
| __getitem__(...)
| x.__getitem__(y) <==> x[y]
|
| __hash__(...)
| x.__hash__() <==> hash(x)
|
| __init__(...)
| x.__init__(...) initializes x; see x.__class__.__doc__ for signature
|
| __iter__(...)
| x.__iter__() <==> iter(x)
|
| __len__(...)
| x.__len__() <==> len(x)
|
| __repr__(...)
| x.__repr__() <==> repr(x)
|
| __setitem__(...)
| x.__setitem__(i, y) <==> x[i]=y
|
| __str__(...)
| x.__str__() <==> str(x)
|
| filter(...)
| Generate filtered container.
|
| get(...)
| Get token value.
|
| get_formatted(...)
| Get translated/formatted token value.
|
| get_item_reference(...)
| Get item reference expression.
|
| get_tokens(...)
| Get all available element tokens.
|
| get_translated(...)
| Get translated/formatted token value.
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __new__ = <built-in method __new__ of type object>
| T.__new__(S, ...) -> a new object with type S, a subtype of T
Diese Funktion "verwaltet" Inspektionspunkte in einer Liste. Nun möchte ich über einen Filter die Elemente heraussuchen, die in einer 2. Liste (Prüfliste) vorkommen. In dem Tut. des Herstellers steht das man sowohl Lambda als auch LC für die Filterung einsetzen kann. Bis jetzt habe ich aber keine Iteration innerhalb von filter() hinbekommen. Zurückgegeben wird eine Liste die alle Elemente enthält, deren Namen teil eines Prüfstrings sind.
Was heisst keine Iteration hinbekommen? Eine normale ``for``-Schleife ist in ``lambda``-Ausdrücken nicht möglich. Es zwingt Dich ja aber auch niemand einen ``lambda``-Ausdruck zu nehmen. Schreib halt einfach eine Funktion.