Heim > Backend-Entwicklung > Python-Tutorial > 3 Möglichkeiten, Python-Sequenzen zirkulär zu verschieben

3 Möglichkeiten, Python-Sequenzen zirkulär zu verschieben

不言
Freigeben: 2018-04-09 15:03:13
Original
4702 Leute haben es durchsucht

Das Folgende ist eine Empfehlung für drei Methoden zur zirkulären Verschiebung von Python-Sequenzen. Sie hat einen guten Referenzwert und ich hoffe, dass sie für alle hilfreich ist.

Die erste Methode: Das Merkmal ist, dass sie direkt und leicht zu verstehen ist. Der Nachteil ist, dass sie langsam ist und nur eine kreisförmige Linksverschiebung erreichen kann.

def demo(lst, k):
  temp = lst[:]
  for i in range(k):
    temp.append(temp.pop(0))
  return temp
Nach dem Login kopieren

Die zweite Methode: zeichnet sich durch schnelle Geschwindigkeit und adaptive Schleifenverschiebung nach links aus ( k> 0) und Rechtsverschiebung (k<0), der Nachteil besteht darin, dass es sich um Algorithmen handelt und nicht leicht zu verstehen ist.

def demo(lst, k):
  x = lst[:k]
  x.reverse()
  y = lst[k:]
  y.reverse()
  r = x+y
  return list(reversed(r))
Nach dem Login kopieren

Die pythonischste ultimative Methode: Verwenden Sie Slices, einfach und leicht zu verstehen, am schnellsten, Eine zirkuläre Linksverschiebung (k>0) und eine Rechtsverschiebung (k<0) können gleichzeitig realisiert werden.

def demo(lst, k):
  return lst[k:] + lst[:k]
Nach dem Login kopieren

Verwandte Empfehlungen:

Python-Methode zum Generieren von Zufallszahlen in jedem Bereich und mit beliebiger Genauigkeit

Python-Netzwerkprogrammierung verwendet Select, um die asynchrone Socket-Vollduplex-Kommunikationsfunktion zu implementieren

Das obige ist der detaillierte Inhalt von3 Möglichkeiten, Python-Sequenzen zirkulär zu verschieben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage