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"] 
  
print("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)) 
  
print("The list after shifting K's to end : " + str(res)) 
Ausgabe :
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"] 
  
print("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)] 
  
print("The list after shifting K's to end : " + str(res)) 
Ausgabe :
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]