Seite 1 von 1
Wie kann ich eine Bestimmte Stelle eines Arrays definieren?
Verfasst: Samstag 8. März 2014, 12:29
von graceflotte
Hallo,
ich bin noch relativ neu in der Programmierung mit Python, also bitte verzeiht mir diese womöglich simple
Frage.
Für mein Programm möchte ich gerne einer bestimmt Stelle in einem Array einem Wert zuweisen.
Also quasi so:
Das Problem dabei, das Array weiß offenbar noch gar nicht, dass es Werte an bestimmten Stellen aufnehmen kann. Mit
a.append("test") kann ich zwar etwas dran hängen, aber ich möchte es halt eine Bestimmte Stelle beschreiben.
Hat da jemand eine Idee?
Danke schon einmal im Vorraus

Re: Wie kann ich eine Bestimmte Stelle eines Arrays definier
Verfasst: Samstag 8. März 2014, 12:46
von kbr
Wenn Deine Liste nicht lang genug ist, dann kannst Du natürlich keine Elemente ausserhalb der Listenlänge ansprechen. Was Du vielleicht möchtest ist ein Dictionary. Setze in Zeile 1 a = {} und es wird funktionieren. Und schau Dir die Docu zu Dictionaries an.
Re: Wie kann ich eine Bestimmte Stelle eines Arrays definier
Verfasst: Samstag 8. März 2014, 12:53
von BlackJack
@graceflotte: Zum Sprachgebrauch: `a` ist bei Dir eine Liste und kein Array. Wenn man bei Python von Arrays spricht, ist in den allermeisten Fällen der Numpy-Array-Datentyp gemeint.
Re: Wie kann ich eine Bestimmte Stelle eines Arrays definier
Verfasst: Samstag 8. März 2014, 13:49
von graceflotte
@kbr: Danke! Hat funktioniert

@Blackjack: Danke auch dir, bei C++/Perl wird so ein Array deklariert, wenn mich nicht alles täuscht. Habe das deshalb einfach mal übernommen
Werde mein Script dann bald mal im Showroom vorstellen

Re: Wie kann ich eine Bestimmte Stelle eines Arrays definier
Verfasst: Samstag 8. März 2014, 14:49
von BlackJack
@graceflotte: Bei C++ sind die eckigen Klammern Bestandteil der Typangabe wenn man ein Array deklariert. Dort muss man aber entweder die Arraygrösse bei der Deklaration angeben, oder zur Laufzeit entsprechend viel Speicher anfordern bevor man einem Index einen Wert zuweisen kann. Man muss also vorher wissen wie gross das Array maximal wird und es entweder deklarieren oder sicherstellen das es existiert wenn man darauf zugreift. Auf der rechten Seite einer Zuweisung kann man ein literales Array mit geschweiften Klammern angeben. Beispiel ``uint16_t numbers[] = {42, 23, 4711};``
Bei Perl ist das `@`-Sigil das Zeichen für ein Array bei der Deklaration. Man kann dort zwar an beliebigen Indexen einen Wert zuweisen, also Lücken im Array hinterlassen. Die Elemente in diesen Lücken sind dann allerdings undefiniert und das sollte man vermeiden. In dem Fall würde man auch in Perl einen anderen Datentyp verwenden, nämlich ein „Hash”, was in etwa einem `dict` in Python entspricht. Auf der rechten Seite einer Zuweisung werden Arrays in Perl in runden Klammern eingefasst. Beispiel: ``my @names = ('Peter', 'Paul', 'Mary');``