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

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: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

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

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

@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

nein dann steht:

type error: expected int or string key
BlackJack

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

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

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:

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

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten