Heim  >  Artikel  >  Backend-Entwicklung  >  Python verwendet Reduce und Map, um Zeichenfolgen in Zahlen umzuwandeln

Python verwendet Reduce und Map, um Zeichenfolgen in Zahlen umzuwandeln

黄舟
黄舟Original
2017-01-18 15:52:151431Durchsuche

Python-Programmiersprache

Python ist eine objektorientierte, interpretierte Computerprogrammiersprache, die Ende 1989 von Guido van Rossum erfunden wurde. Die erste öffentliche Veröffentlichung wurde 1991 veröffentlicht. Die Python-Syntax ist prägnant und klar und verfügt über umfangreiche und leistungsstarke Klassenbibliotheken. Sie wird oft als Klebesprache bezeichnet, die verschiedene Module, die in anderen Sprachen (insbesondere C/C++) erstellt wurden, problemlos miteinander verbinden kann.


Als ich kürzlich Funktionen höherer Ordnung überprüfte, gab es eine Frage, die ich nach langem Nachdenken nicht lösen konnte. Also suchte ich am Morgen nach Informationen und schaute mir die Lösungen anderer Leute an. Dabei stellte ich fest, dass Denken beim Erlernen des Programmierens wirklich wichtig ist. Der folgende Artikel stellt Ihnen die Ideen und Methoden zum Konvertieren von Zeichenfolgen in Zahlen mithilfe von Reduce und Map in Python vor. Lassen Sie uns gemeinsam einen Blick darauf werfen.

Einführung in das Reduzieren und Zuordnen in Python

map(func,seq1[,seq2...]): Wenden Sie die Funktion func auf jedes Element der angegebenen Sequenz an und verwenden Sie sie a Eine Liste zur Bereitstellung des Rückgabewerts; wenn func None ist, verhält sich func wie eine Identitätsfunktion und gibt eine Liste von n Tupeln zurück, die die Menge der Elemente in jeder Sequenz enthält.

reduce(func,seq[,init]): func ist eine binäre Funktion. Wende func jedes Mal auf die Elemente der seq-Sequenz an, wenn sie ein Paar trägt (das vorherige Ergebnis und die Elemente der nächsten Sequenz). ), kontinuierlich Das vorhandene Ergebnis und der nächste Wert werden auf die nachfolgenden erhaltenen Ergebnisse angewendet, wodurch unsere Sequenz schließlich auf einen einzigen Rückgabewert reduziert wird: Wenn der Anfangswert init angegeben ist, findet der erste Vergleich zwischen init und den ersten Sequenzelementen statt die ersten beiden Elemente der Sequenz.

In diesem Artikel wird hauptsächlich vorgestellt, wie Python Reduzieren und Zuordnen verwendet, um Zeichenfolgen in Zahlen umzuwandeln. Schauen wir uns ohne weitere Umschweife die detaillierte Implementierungsmethode an.

Übung:

Verwenden Sie Map und Reduce, um eine str2float-Funktion zu schreiben, um die Zeichenfolge „123.456“ in eine Gleitkommazahl 123.456 umzuwandeln

Erläuterung der Lösung und Ideen:

from functools import reduce
 
def str2float(s):
 s = s.split('.') #以小数点为分隔符,把字符串分为两部分
 
 def f1(x,y): #函数1,小数点之前的数用这个函数处理
  return x * 10 + y
 
 def f2(x,y): #函数2,小数点之后的数用这个函数处理
  return x / 10 + y
 
 def str2num(str): #函数3,用于把字符串'123'逐个变为数字
  return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[str]
 
 return reduce(f1,map(str2num,s[0])) + reduce(f2,list(map(str2num,s[1]))[::-1])/10
 
 #最后一部是这个解法的精髓
 #小数点前的数'123',用 x * 10 + y 正常求和就能得出123,小数点之后的数'456'要怎样才能得出0.456呢?
 #首先把字符串'456'用list(map(str2num,s[1]))转成一个列表[4,5,6]
 #然后用[::-1]切片的方式从后往前取,列表变为[6,5,4]
 #然后把[6,5,4]利用reduce函数放到f2函数中计算,( 6 / 10 + 5) / 10 + 4 = 4.56,得出结果4.56
 #再除以一个10,得出0.456,到此成功把字符串'456'变成了浮点数0.456
 #把前后结果加起来,就得到了最终解,成功把字符串'123.456'变成了浮点数123.456

Das Obige ist der Inhalt der Python-Methode zum Konvertieren von Zeichenfolgen in Zahlen mithilfe von Reduzieren und Zuordnen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
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