Python-Programm zum Abrufen von Vorzeichenwechselindizes in einer Liste
Bei gegebener Liste besteht die Aufgabe darin, ein Python-Programm zu schreiben, das alle Indizes extrahiert, aus denen eine Vorzeichenverschiebung aufgetreten ist.
Eingabe: test_list = [7, 6, -3, -4, -7, 8, 3, -6, 7, 8]
Ausgabe : [1, 4, 6, 7]
Erläuterung: 6 -> -3 beim 1. Index, -7 -> 8 beim 4. Index usw. sind Verschiebungen.
Eingabe: test_list = [7, 6, -3, -4, -7, 8, 3, 6, 7, 8]
Ausgabe: [1, 4]
Erläuterung: 6 -> -3 beim 1. Index, -7 -> 8 beim 4. Index sind Verschiebungen.
Methode 1: Verwenden von Schleifen- und bedingten Anweisungen
In diesem Fall überprüfen wir mithilfe von bedingten Anweisungen, ob das aktuelle und das nächste Element entgegengesetzte Vorzeichen haben. Die Schleife wird verwendet, um alle Elemente zu durchlaufen.
Beispiel:
test_list
=
[
7
,
6
,
-
3
,
-
4
,
-
7
,
8
,
3
,
-
6
,
7
,
8
]
(
"The original list is : "
+
str
(test_list))
res
=
[]
for
idx
in
range
(
0
,
len
(test_list)
-
1
):
if
test_list[idx] >
0
and
test_list[idx
+
1
] <
0
or
test_list[idx] <
0
and
test_list[idx
+
1
] >
0
:
res.append(idx)
(
"Sign shift indices : "
+
str
(res))
Ausgabe:
Die ursprüngliche Liste lautet: [7, 6, -3, -4, -7, 8, 3, -6, 7, 8]
Vorzeichenverschiebungsindizes: [1, 4, 6, 7]
Methode 2: Verwenden des Listenverständnisses
Ähnlich wie oben beschrieben, bietet dies jedoch eine Einzeiler-Alternative unter Verwendung des Listenverständnisses.
Beispiel:
test_list
=
[
7
,
6
,
-
3
,
-
4
,
-
7
,
8
,
3
,
-
6
,
7
,
8
]
(
"The original list is : "
+
str
(test_list))
res
=
[idx
for
idx
in
range
(
0
,
len
(test_list)
-
1
)
if
test_list[idx] >
0
and
test_list[idx
+
1
] <
0
or
test_list[idx] <
0
and
test_list[idx
+
1
] >
0
]
(
"Sign shift indices : "
+
str
(res))
Ausgabe:
Die ursprüngliche Liste lautet: [7, 6, -3, -4, -7, 8, 3, -6, 7, 8]
Vorzeichenverschiebungsindizes: [1, 4, 6, 7]