Listenproblem...

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.
TS1234
User
Beiträge: 16
Registriert: Freitag 8. Juni 2007, 19:11

Listenproblem...

Beitragvon TS1234 » Sonntag 23. September 2007, 15:06

Ich mache da was in Blender...

aktuelle Doku ist hier:
http://www.blender.org/documentation/24 ... tml#curves

genauer gesagt ich möchte aus einer curve-liste auf direkte Weise eine bestimmte curve holen... ich kriege das nicht hin, deswegen hab ich mir eine Hilfsfunktion gemacht...

Code: Alles auswählen

def getcurve(ipo, curvename):
   for curve in ipo.curves:
      if curve.name==curvename:
         return curve


curvename ist ein String - etwa "LocX"

wenn ich es so mache:

curve=ipo.curves["LocX"]

kommt dann

"Type error: list indices must be integer"
Benutzeravatar
Michael Schneider
User
Beiträge: 566
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Beitragvon Michael Schneider » Sonntag 23. September 2007, 15:23

Hi TS1234,

der Fehler tritt auf, weil Du ein Listenelement über dessen Index innerhalb der Liste slicen musst.

Code: Alles auswählen

liste[3]

... gibt Dir beispielsweise das 4. Element der Liste.

In Deinem Beispielcode hast Du über alle Elemente der Liste iteriert, da brauchst Du nichts slicen. Was passiert denn, wenn Du Deinen Code ausführst?

Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
TS1234
User
Beiträge: 16
Registriert: Freitag 8. Juni 2007, 19:11

Beitragvon TS1234 » Sonntag 23. September 2007, 15:27

hm dann kommt list index out of range...

da die liste beliebig lang sein kann

ich glaube dann bleibt nix übrig als die hilfsfunktion zu nehmen?
BlackJack

Beitragvon BlackJack » Sonntag 23. September 2007, 15:32

@TS1234: Die Doku ist für `Ipo`-Objekte und nicht für `Ipo.curves` also müsste es mit ``ipo['LocX']`` anstelle von ``ipo.curves['LocX']`` gehen.
TS1234
User
Beiträge: 16
Registriert: Freitag 8. Juni 2007, 19:11

Beitragvon TS1234 » Sonntag 23. September 2007, 15:39

nein dann steht:

type error: expected int or string key
BlackJack

Beitragvon BlackJack » Sonntag 23. September 2007, 17:25

Glaube ich nicht. 'LocX' ist eine Zeichenkette.
TS1234
User
Beiträge: 16
Registriert: Freitag 8. Juni 2007, 19:11

Beitragvon TS1234 » Sonntag 23. September 2007, 18:36

tja das sehe ich
ich bin aber nicht schuld, wenn es da so steht... :)
Benutzeravatar
Michael Schneider
User
Beiträge: 566
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Beitragvon Michael Schneider » Montag 24. September 2007, 07:12

Hi TS1234,

was sind denn ipo und ipo.curves für Objekte?

Code: Alles auswählen

print type(ipo), type(ipo.curves)


Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Montag 24. September 2007, 08:33

Wenn du nicht weiter kommst, stell mal die Blender-Datei online.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei

Wer ist online?

Mitglieder in diesem Forum: redone