Python-Programm zum Entfernen von Zeilen mit benutzerdefiniertem Listenelement
Bei einer gegebenen Matrix besteht die Aufgabe hier darin, ein Python-Programm zu schreiben, um Zeilen mit einem beliebigen Element aus der benutzerdefinierten Liste zu entfernen und dann das Ergebnis anzuzeigen.
Beispiele:
Eingabe : test_list = [[5, 3, 1], [7, 8, 9], [1, 10, 22], [12, 18, 21]], check_list = [3, 10, 19, 29, 20 , 15]
Ausgabe : [[7, 8, 9], [12, 18, 21]]
Erläuterung : Die Zeile [5, 3, 1] enthält 3 in der benutzerdefinierten Liste und wird daher weggelassen.Eingabe : test_list = [[5, 3, 1], [7, 8, 19], [1, 10, 22], [12, 18, 20]], check_list = [3, 10, 19, 29, 20 , 15]
Ausgabe : []
Erläuterung : Alle Zeilen enthalten Elemente aus der benutzerdefinierten Liste und werden daher weggelassen.
Methode 1: Verwenden von any() und Listenverständnis
In diesem Fall führen wir die Aufgabe aus, nach Elementen aus der benutzerdefinierten Liste zu suchen, um mit any() nach Zeilen zu suchen, und das Listenverständnis wird verwendet, um die Zeile wegzulassen, wenn ein Element aus der benutzerdefinierten Liste in der Zeile gefunden wird.
Beispiel:
test_list
=
[[
5
,
3
,
1
], [
7
,
8
,
9
], [
1
,
10
,
22
], [
12
,
18
,
21
]]
(
"The original list is : "
+
str
(test_list))
check_list
=
[
3
,
10
,
19
,
29
,
20
,
15
]
res
=
[row
for
row
in
test_list
if
not
any
(el
in
row
for
el
in
check_list)]
(
"The omitted rows matrix : "
+
str
(res))
Ausgabe:
Die ursprüngliche Liste lautet: [[5, 3, 1], [7, 8, 9], [1, 10, 22], [12, 18, 21]]
Die ausgelassene Zeilenmatrix: [[7, 8, 9], [12, 18, 21]]
Methode 2: Verwenden von filter(), Lambda und any()
Ähnlich wie bei der obigen Methode wird nur der Unterschied zwischen filter() und Lambda-Funktion verwendet, um die Aufgabe des Herausfilterns oder Weglassens von Zeilen aus der Matrix aus dem Ergebnis auszuführen.
Beispiel:
test_list
=
[[
5
,
3
,
1
], [
7
,
8
,
9
], [
1
,
10
,
22
], [
12
,
18
,
21
]]
(
"The original list is : "
+
str
(test_list))
check_list
=
[
3
,
10
,
19
,
29
,
20
,
15
]
res
=
list
(
filter
(
lambda
row:
not
any
(
el
in
row
for
el
in
check_list), test_list))
(
"The omitted rows matrix : "
+
str
(res))
Ausgabe:
Die ursprüngliche Liste lautet: [[5, 3, 1], [7, 8, 9], [1, 10, 22], [12, 18, 21]]
Die ausgelassene Zeilenmatrix: [[7, 8, 9], [12, 18, 21]]