Listenelemente (strings)

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.
Antworten
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Hallo einfach mal kurz code dann wird das Problem denke ich schon klar.

Code: Alles auswählen

liste = ["string1", "string2", "string3"]
was muss ich tun damit aus den Listenelementen selbst eine Liste wird und nicht so aussieht:

["s","t","r", ....] sondern ["string1"]

Danke!!!!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

So?

Code: Alles auswählen

>>> liste = ["string1", "string2", "string3"]
>>> map(lambda x: [x], liste)
[['string1'], ['string2'], ['string3']]
Das Leben ist wie ein Tennisball.
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Vielen Dank! Genau so!
Ich wäre dir nur sehr dankbar wenn du ein paar Worte dazu sagen könntest, oder einen Weg ohne lambda findest, denn das verstehe ich garnicht!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Das sollte als Hinweis genügen:

Code: Alles auswählen

>>> liste = ["string1", "string2", "string3"]
>>> def spam(x):
...     return [x]
... 
>>> map(spam, liste)
[['string1'], ['string2'], ['string3']]
Als nächstes schaust du dann in die Dokumentation zu lambda und liest die Details nach ;-)
Das Leben ist wie ein Tennisball.
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Danke!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wobei mir der Anwendungsfall schon kurios vorkommt. Wozu braucht man ein-elementige Listen? (Zumal, wenn man augenscheinlich mit den Grundlagen eh noch Probleme hat...) Das kommt mir ein wenig spanisch vor.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Hyperion hat geschrieben:Wobei mir der Anwendungsfall schon kurios vorkommt. Wozu braucht man ein-elementige Listen?
Vielleicht für Monaden?

Code: Alles auswählen

def join(mx):
    assert len(mx) == 1
    return mx[0]

def compose(f, g):
    return lambda x:g(f(x))

def flatmap(mxs, f):
    return map(compose(f, join), mxs)
    
bind = flatmap

def unit(x):
    return [x] # <===========

zero = []

def plus(mxs, mys):
    mzs = bind(mxs, unit)
    mzs.extend(bind(mys, unit))
    return mzs

assert plus(unit(5), zero) == unit(5)

def mul2(x):
    return unit(x * 2)

def add3(x):
    return unit(x + 3)


a = unit(1)
b = unit(7)
c = plus(a, b)
d = bind(c, mul2)
e = bind(d, add3)

print c
print d
print e


# Hier die Monaden-Gesetze:
assert bind(unit(1), mul2) == mul2(1) # links-assoziativ
assert bind(unit(1), unit) == unit(1) # rechts-assoziativ
assert bind(bind(unit(1), mul2), add3) == bind(unit(1), lambda x:bind(mul2(x), add3)) # kommutativ
In specifications, Murphy's Law supersedes Ohm's.
Antworten