2016-06-22 2 views
0

Ich brauche ein paar Tipps. Ich habe eine quadratische Liste "y" ("y" hat eine nxn Größe). Dies ist ein Beispiel:Wie kann ich eine bestimmte Zeile und Spalte in einer Liste löschen?

y=[[20,30,35,40], 
    [10,25,55,45], 
    [15,39,19,59], 
    [25,35,24,17]] 

Ich habe eine andere Liste "x" ("x" hat eine nx2 Größe) .Dies ist ein Beispiel:

x=[[1,1] 
    [2,0] 
    [3,0] 
    [4,1]] 

ich in der Liste „x finden will "(für jede Zeile), wenn (in der zweiten Spalte der Liste" x ") die Zahl" 1 "erscheint. Wenn die Nummer "1" in der zweiten Spalte der Liste "x" erscheint, möchte ich die entsprechende Zeile und die entsprechende Spalte in der Liste "y" löschen. Im obigen Beispiel erscheint in der Liste "x" die Nummer "1" in der ersten Zeile und die vier Zeile der Liste "x". Dann muss ich die entsprechenden Zeilen und Spalten in der Liste "y" löschen.

Wenn "1" in der ersten Zeile in der Liste "x" (für das obige Beispiel) erscheint, ist dies die gewünschte Liste "y" (Ich muss die erste Zeile löschen und die erste Spalte in der ursprünglichen Liste löschen „y“):

y=[[25,55,45], 
     39,19,59], 
     35,24,17]] 

Dann, weil „1“ in der dritten Zeile in der Liste „x“ (bei dem obigen Beispiel), ist dies die gewünschte Liste „y“ (I löschen muß, die dritten Zeile und löschen Sie die dritte Spalte in der ursprünglichen Liste "y"):

y=[ [25,45] 
     [35,17] 

Vielen Dank.

+2

Welchen Code haben Sie bisher ausprobiert? –

+2

Ich sehe "1" in der dritten Zeile von "x" nicht. –

+1

Dies ist eine "Kannst du mir helfen, meine Hausaufgaben Lösung" Website, nicht ein "Kannst du meine Hausaufgaben für mich tun" Website –

Antwort

1

Die Funktion

def remove(a,i,j): 
    return [row[:j] + row[j+1:] for k,row in enumerate(a) if k != i] 

beantwortet Ihre angegebene Frage („Wie kann ich eine bestimmte Zeile und Spalte aus einer Liste löschen“), wenn es noch dunkel ist genau die Zeilen und Spalten, die Sie entfernen möchten.

Im Fall Ihrer y, die beiden Linien

>>> y = remove(y,0,0) 
>>> y = remove(y,1,1) 

Ergebnisse in

>>> y 
[[25, 45], [35, 17]] 

Sie müssen nur herausfinden, wie durch x und berechnen die benötigten Indizes (0 und 1 iterieren in diesem Fall).

Verwandte Themen