2016-08-16 1 views
0

Ich versuche, ein Problem zu lösen, und ich bin nicht in der Lage, es zu tun. Das Problem ist, dass ich eine Funktion in Python habe. Und ich habe 3 Fälle und möchte, dass meine Funktion für alle diese Fälle allgemein ist. Also meine Funktion ein Argument benötigt, die ein Array wie diese a = [a1, a2, a3] und für jeweils 2 der Elemente in der Anordnung sind konstant und die andere ist variabel, erkläre ich dies näher mit diesem Beispielcode:Setzen Sie eine Variable in eine bestimmte Array-Position Python

# I have my function: 

def example(r,a): 
    # r is an array. Inside this function I have a for loop 
    for i in xrange(len(r)): 
     #inside this loop is where I have the 3 cases: 
     a = [r[z], a[1], a[2]] 
     a = [a[0], r[z], a[2]]  
     a = [a[0], a[1], r[z]] 
    (rest of the code) 
    ... 

also möchte ich einen Weg finden, a zu deklarieren, damit meine Funktion weiß, wo ich die Variable r[z] setzen kann. Ich weiß, dass es möglich ist, es mit Anweisungen zu tun, aber ich suche nach einer Ein-Linien-Lösung, etwas wie eine Art, die zu setzen Variable r [z] in einer bestimmten Position des Arrays a. Oder ich weiß nicht, dass ein effizienter Weg geschätzt wird.

Vielen Dank im Voraus.

Grüße

+0

Verwenden Sie '.insert()' oder 'a [: i] + [Element] + a [i:]' –

Antwort

0

Verwenden insert() ein Element vor einer bestimmten Position einzufügen.

Zum Beispiel mit

arr = ['A','B','C'] 
arr.insert(0,'D') 
arr becomes ['D','A','B','C'] 

weil 'D' vor dem Element mit dem Index 0. eingesetzt ist

Nun, für

arr = ['A','B','C'] 
arr.insert(4,'D') 
arr becomes ['A','B','C','D'] 

weil 'D' wird, bevor der einge Element bei Index 4 (das ist 1 über das Ende des Arrays hinaus).

Ursprüngliche Antwort: Inserting values into specific locations in a list in Python

+0

Mmm ja, aber das löst mein Problem nicht, seit wie kann ich das Array definieren, so dass die Funktion meine Variable in einer bestimmten Position. Ich meine, ich möchte der Funktion die Information geben, wo die Variable in das Array eingefügt werden soll. Etwas wie: a = ['einfügenhier', a2, a3] so wird die Funktion die Variable an Stelle von 'einfügenhier' einfügen –

+0

Sie übergeben diese Position einfügen(), damit ich Ihren Punkt nicht bekommen – Raskayu

0

Ich habe ich Art und Weise, es zu tun gefunden:

#if I define a as: 

a = [a1, True, a3] 

# I can use 

np.place(a, a==True, r[z]) 

Auf diese Weise wird es den Wert ersetzen, wo ein [i] = true durch r [z]

Verwandte Themen