Python - Heckverschiebung K in Liste
Das konventionelle Problem der Elementverschiebungen wurde schon oft diskutiert, aber manchmal haben wir strenge Einschränkungen, die sie ausführen, und die Kenntnis möglicher Variationen hilft. In diesem Artikel wird über ein solches Problem beim Verschieben von Ks am Ende der Liste gesprochen. Hier wird nur nach Ks gesucht, wobei die herkömmlichen Werte "Keine" (Falsch) ausgeschlossen sind. Lassen Sie uns bestimmte Möglichkeiten diskutieren, wie dies durchgeführt werden kann.
Methode 1: Verwenden des Listenverständnisses +isinstance()
Bei dieser Methode führen wir die Verschiebung in zwei Schritten durch. Im ersten Schritt erhalten wir alle Werte, die wir brauchen, um nach vorne zu kommen, und am Ende drücken wir einfach die Ks zum Ende. Die isinstance-Methode wird verwendet, um die Entität Boolean False herauszufiltern.
test_list
=
[
1
,
4
,
None
,
"Manjeet"
,
False
,
4
,
False
,
4
,
"Nikhil"
]
(
"The original list : "
+
str
(test_list))
K
=
4
temp
=
[ele
for
ele
in
test_list
if
ele !
=
K
and
ele
or
ele
is
None
or
isinstance
(ele,
bool
) ]
res
=
temp
+
[K]
*
(
len
(test_list)
-
len
(temp))
(
"The list after shifting K's to end : "
+
str
(res))
Die ursprüngliche Liste: [1, 4, Keine, 'Manjeet', Falsch, 4, Falsch, 4, 'Nikhil'] Die Liste nach dem Verschieben von Ks zum Ende: [1, Keine, 'Manjeet', Falsch, Falsch, 'Nikhil', 4, 4, 4]
Methode 2: Verwenden des Listenverständnisses + isinstance()
+ Listen-Slicing
Diese Methode ähnelt der obigen Methode. Die einzige Änderung besteht darin, dass zum Reduzieren der Anzahl der Schritte das Listen-Slicing verwendet wird, um die Ks anzuhängen und die gesamte Aufgabe in nur einem Schritt auszuführen.
test_list
=
[
1
,
4
,
None
,
"Manjeet"
,
False
,
4
,
False
,
4
,
"Nikhil"
]
(
"The original list : "
+
str
(test_list))
K
=
4
res
=
([ele
for
ele
in
test_list
if
ele !
=
K
and
ele
or
not
isinstance
(ele,
int
)
or
isinstance
(ele,
bool
)]
+
[K]
*
len
(test_list))[:
len
(test_list)]
(
"The list after shifting K's to end : "
+
str
(res))
Die ursprüngliche Liste: [1, 4, Keine, 'Manjeet', Falsch, 4, Falsch, 4, 'Nikhil'] Die Liste nach dem Verschieben von Ks zum Ende: [1, Keine, 'Manjeet', Falsch, Falsch, 'Nikhil', 4, 4, 4]