Einführung in die gängigen integrierten Funktionen von Python

巴扎黑
Freigeben: 2017-09-07 09:42:17
Original
1309 Leute haben es durchsucht

Die sogenannten Built-in-Funktionen können ohne Import direkt genutzt werden. Der folgende Artikel stellt hauptsächlich einige gängige integrierte Funktionen für das grundlegende Erlernen von Python vor. Der Artikel stellt sie Ihnen ausführlich anhand von Beispielcode vor. Lassen Sie uns mit dem Editor darauf zurückgreifen.

Vorwort

Python bietet viele integrierte Funktionen zur Verarbeitung vieler Typen Führen Sie ähnliche Operationen für mehrere Objekttypen durch, d. h. für mehrere Objekttypen. Ich werde im Folgenden nicht näher darauf eingehen.

map()

Die Funktion map() akzeptiert zwei Parameter, einer ist eine Funktion und der andere ein iterierbares Objekt (Iterable). , map Wenden Sie die übergebene Funktion nacheinander auf jedes Element des iterierbaren Objekts an und geben Sie das Ergebnis als Iterator zurück.

Zum Beispiel gibt es eine Funktion f(x)=x^2 , und Sie möchten diese Funktion auf eine list[1,2,3,4,5,6,7,8,9] anwenden:

Mit einer einfachen Schleife können Sie Folgendes erreichen :


>>> def f(x):
...  return x * x
...
L = []
for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
 L.append(f(n))
print(L)
Nach dem Login kopieren

Funktionen höherer Ordnung verwenden map():


>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
Nach dem Login kopieren

Das Ergebnis r ist ein Iterator, iterator Es ist eine Lazy-Sequenz. Verwenden Sie die Funktion list(), damit die gesamte Sequenz berechnet und eine Liste zurückgegeben wird.

Wenn Sie alle Zahlen in dieser Liste in Zeichenfolgen umwandeln möchten, ist dies einfach zu verwenden map():


>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']
Nach dem Login kopieren

Kleine Übung: Verwenden Sie die Funktion map(), um den vom Benutzer eingegebenen nicht standardmäßigen englischen Namen in einen Standardnamen mit dem ersten Buchstaben in Großbuchstaben und dem Rest in Kleinbuchstaben zu ändern. Eingabe['adam', 'LISA', 'barT'],Ausgabe['Adam', 'Lisa', 'Bart']


def normalize(name):
  return name.capitalize()

 l1=["adam","LISA","barT"]
 l2=list(map(normalize,l1))
 print(l2)
Nach dem Login kopieren

reduce()

reduce() Die Funktion akzeptiert auch zwei Parameter, einer ist eine Funktion und der andere ist ein iterierbares Objekt. Reduce führt eine kumulative Berechnung für das Ergebnis der Anwendung der übergebenen Funktion auf jedes Element des iterierbaren Objekts durch. Geben Sie dann das Endergebnis zurück.

Der Effekt ist: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

Konvertieren Sie beispielsweise die Sequenz [1,2,3,4,5] in die Ganzzahl 12345:


>>> from functools import reduce
>>> def fn(x, y):
...  return x * 10 + y
...
>>> reduce(fn, [1, 2, 3, 4, 5])
12345
Nach dem Login kopieren

Kleine Übung: Schreiben Sie eine prod()-Funktion, die eine Liste akzeptieren und Reduzieren verwenden kann, um das Produkt zu berechnen:


from functools import reduce
def pro (x,y):
  return x * y
 def prod(L):
  return reduce(pro,L)
 print(prod([1,3,5,7]))
Nach dem Login kopieren

map() und reduce()Umfassende Übung: Schreiben Sie die Funktion str2float, um die Zeichenfolge „123.456“ in den Gleitkommatyp 123.456 umzuwandeln


CHAR_TO_FLOAT = {
 '0': 0,'1': 1,'2': 2,'3': 3,'4': 4,'5': 5,'6': 6,'7': 7,'8': 8,'9': 9, '.': -1
}
def str2float(s):
 nums = map(lambda ch:CHAR_TO_FLOAT[ch],s)
 point = 0
 def to_float(f,n):
   nonlocal point
   if n==-1:
    point =1
    return f
   if point ==0:
    return f*10+n
   else:
    point =point *10
    return f + n/point

 return reduce(to_float,nums,0)#第三个参数0是初始值,对应to_float中f
Nach dem Login kopieren

filter()

filter() Funktion wird zum Filtern der Sequenz verwendet filter() akzeptiert auch eine Funktion und eine Sequenz filter() wendet die übergebene Funktion nacheinander auf jedes Element an und bestimmt dann Ob der Rückgabewert True oder False ist, entscheidet darüber, ob das Element beibehalten oder verworfen wird.

Löschen Sie beispielsweise gerade Zahlen in der Liste:


def is_odd(n):
 return n % 2 == 1

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 结果: [1, 5, 9, 15]
Nach dem Login kopieren

Kleine Übung: Verwenden Sie filter(), um Primzahlen zu finden Zahlen

Eine Möglichkeit, Primzahlen zu berechnen, ist die Ehrlich-Sieb-Methode. Ihr Algorithmus ist sehr einfach zu verstehen:

Listen Sie zunächst alle natürlichen Zahlen ab 2 auf und konstruieren Sie sie eine Sequenz:

2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...

Nehmen Sie die erste Zahl 2 der Folge, die eine Primzahl sein muss, und verwenden Sie dann 2, um die Vielfachen von 2 in der Folge herauszufiltern:

3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...

Holen Sie sich die erste Zahl der neuen Folge 3, es muss eine Primzahl sein, und verwenden Sie dann 3, um die Vielfachen von 3 in der Folge herauszufiltern:

5, 6, 7, 8, 9 , 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...

Nehmen Sie die erste Zahl 5 der neuen Folge und verwenden Sie dann 5 bis Filtern Sie die Vielfachen von 5 in der Reihenfolge heraus:

7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...

Sieben Sie weiter und Sie erhalten alle Primzahlen.

Verwenden Sie Python, um diesen Algorithmus zu implementieren. Erstellen Sie zunächst eine Periodenfolge ab 3:


def _odd_iter(): 
n = 1
 while True:
  n = n + 2
  yield n
#这是一个生成器,并且是一个无线序列
Nach dem Login kopieren

Definieren Sie eine Filterfunktion :


def _not_pisible(n):
 return lambda x: x % n > 0
Nach dem Login kopieren

Definieren Sie einen Generator, der kontinuierlich die nächste Primzahl zurückgibt:


def primes():
 yield 2
 it = _odd_iter() # 初始序列
 while True:
  n = next(it) # 返回序列的第一个数
  yield n
  it = filter(_not_pisible(n), it) # 构造新序列
Nach dem Login kopieren

Drucken Sie 100 Primzahlen innerhalb:


for n in primes():
 if n < 100:
  print(n)
 else:
  break
Nach dem Login kopieren

sorted()

Pythons integrierte Funktion sorted() Funktion kann die Liste sortieren:


>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
Nach dem Login kopieren

sorted() Die Funktion ist auch eine Funktion höherer Ordnung und kann auch eine Schlüsselfunktion akzeptieren, um eine benutzerdefinierte Sortierung zu implementieren:


>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
Nach dem Login kopieren

Die durch die Taste angegebene Funktion wird auf jedes Element der Liste angewendet und entsprechend dem von der Tastenfunktion zurückgegebenen Ergebnis sortiert.

默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面。如果想忽略大小写可都转换成小写来比较:


>>> sorted([&#39;bob&#39;, &#39;about&#39;, &#39;Zoo&#39;, &#39;Credit&#39;], key=str.lower)
[&#39;about&#39;, &#39;bob&#39;, &#39;Credit&#39;, &#39;Zoo&#39;]
Nach dem Login kopieren

要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True


>>> sorted([&#39;bob&#39;, &#39;about&#39;, &#39;Zoo&#39;, &#39;Credit&#39;], key=str.lower, reverse=True)
[&#39;Zoo&#39;, &#39;Credit&#39;, &#39;bob&#39;, &#39;about&#39;]
Nach dem Login kopieren

小练习:假设我们用一组tuple表示学生名字和成绩:L = [(&#39;Bob&#39;, 75), (&#39;Adam&#39;, 92), (&#39;Bart&#39;, 66), (&#39;Lisa&#39;, 88)] 。用sorted()对上述列表分别按c成绩从高到低排序:


L = [(&#39;Bob&#39;, 75), (&#39;Adam&#39;, 92), (&#39;Bart&#39;, 66), (&#39;Lisa&#39;, 88)]
def by_score(t):
 for i in t:
   return t[1]
L2=sorted(L,key= by_score)
print(L2)
Nach dem Login kopieren

运用匿名函数更简洁:


L2=sorted(L,key=lambda t:t[1])
print(L2)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung in die gängigen integrierten Funktionen von Python. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!