2017-01-24 3 views
1

Ich würde gerne wissen, gibt es eine "einfache" Möglichkeit, zwei übereinstimmende Arrays erstellen Einfügen eines Dummy fehlende Wert in beiden Arrays so bleiben sie gleiche Größe und Indizes, die in beiden gleich sind Arrays gleich bleiben, so zum Beispiel:Wie man Felder gleicher Größe in Python macht

["A", "B", "C", "D", "E", "F"] und ["B", "C", "E"]

Würde

["A", "B", "C", "D", "E", "F"] und ["N/A", "B", "C", "N/A", "E", "N/A"]

Vielen Dank im Voraus sein :-)

+0

Es gibt keine "einfachen Wege", es gibt Algorithmen, die Sachen machen. Haben Sie einen solchen Algorithmus geschrieben, um das Problem zu lösen? Wenn ja, bitte zeigen Sie Ihren Code. – ForceBru

+0

Helo ForceBru, vielleicht habe ich nicht gesprochen, ich habe das Problem gelöst: 'a = [1,2,3,4,5] b = [1,3,5] c = [] für el in a: wenn el in b: c.append (el) anderes: c.append (0) print (c) ' – danielvast

+1

bitte nicht Code in den Kommentaren, fügen sie es stattdessen auf die Frage. – ForceBru

Antwort

3
array_1 = ["A", "B", "C", "D", "E", "F"] 
array_2 = ["B", "C", "E"] 

array_3 = array_1 

for n,x in enumerate(array_3): 

    if x not in array_2: 

     array_3[n] = np.nan 

print (array_3) 

aus:

[nan, 'B', 'C', nan, 'E', nan] 

Ich hoffe, das hilft. wenn ja pls upvote :)
Friede

+0

Hilft viel :-) danke epattaro – danielvast

7

One-Liner in einer Liste Verständnis, dies zu tun:

array_1 = ["A", "B", "C", "D", "E", "F"] 
array_2 = {"B", "C", "E"} 

array_3 = [x if x in array_2 else "N/A" for x in array_1] 

print(array_3) 

Ergebnis:

['N/A', 'B', 'C', 'N/A', 'E', 'N/A'] 

Bitte beachte, dass ich array_2 zu einem set umgewandelt für schnelleres Nachschlagen.

Verwandte Themen