En Python, j'aimerais vous présenter quelques fonctions intégrées et bibliothèques standard qui sont un peu utiles à connaître! Il existe différents types, du plus grand au créneau, mais si vous ne le savez pas, veuillez le vérifier.
all () renvoie True si tous les éléments de l'argument sont True, et any () renvoie True si l'un des éléments de l'argument est True.
In [1]: all(_ % 2 == 0 for _ in [1, 2, 3]) #Tout même ou pas
Out[1]: False
In [2]: any(_ % 2 == 0 for _ in [1, 2, 3]) #Tout le monde est pair ou pas
Out[2]: True
divmod
Il demande le quotient et le reste à la fois.
In [1]: 10 // 3, 10 % 3 #Recherche du quotient et du reste
Out[1]: (3, 1)
In [2]: divmod(10, 3) #Exactement le même que ci-dessus
Out[2]: (3, 1)
collections
Counter.most_common
Il trie les itérations par ordre décroissant de fréquence d'apparition. Vous pouvez trouver instantanément le mot qui est le plus utilisé dans une phrase.
In [1]: from collections import Counter
In [2]: Counter(['a', 'b', 'c', 'a', 'b', 'a']).most_common()
Out[2]: [('a', 3), ('b', 2), ('c', 1)]
namedtuple
Créez un objet de valeur. Ceci est pratique lorsque vous souhaitez avoir plusieurs attributs.
In [1]: from collections import namedtuple
In [2]: Doc = namedtuple('Doc', 'tf idf')
In [3]: doc = Doc(tf=0.1, idf=0.01)
In [4]: doc.tf, doc.idf
Out[4]: (0.1, 0.01)
OrderedDict
Le dict normal ne conserve pas l'ordre d'insertion, contrairement à OrderedDict.
In [1]: from collections import OrderedDict
In [2]: d = OrderedDict((('a', 1), ('b', 2), ('c', 3))) # OrderedDict(a=1, b=2, c=3)Veuillez noter qu'il ne sera pas maintenu
In [3]: d['d'] = 4 #Ajouté à la fin
In [4]: for k, v in d.iteritems(): print k, v #Imprimer dans l'ordre d'insertion
a 1
b 2
c 3
d 4
math
fsum
Recherche la somme des valeurs dans itérable sans perdre de chiffres.
In [1]: import math
In [2]: sum([.1] * 10) #Il laissera tomber des chiffres
Out[2]: 0.9999999999999999
In [3]: math.fsum([.1] * 10)
Out[3]: 1.0
log10
Pour le logarithme courant, il est plus précis d'utiliser log10 (x) au lieu de log (x, 10).
In [1]: import math
In [2]: math.log(5, 10)
Out[2]: 0.6989700043360187
In [3]: math.log10(5) #Identique à ci-dessus mais plus précis
Out[3]: 0.6989700043360189
fileinput
Plusieurs fichiers peuvent être traités à la fois. Si aucun fichier n'est spécifié, l'entrée standard est lue.
abc.txt
a b c
def.txt
d e f
fileinput.py
import fileinput
for l in fileinput.input():
print l
$ python fileinput.py abc.txt def.txt #Lire plusieurs fichiers à la fois
a b c
d e f
$ cat abc.txt | python fileinput.py #Entrée standard
a b c
ConfigParser
Lit le fichier de configuration et l'analyse correctement.
.gitconfig(partie)
[user]
name = Hoge
email = [email protected]
[color]
ui = auto
diff = auto
status = auto
interactive = auto
branch = auto
grep = auto
configparser.py
import ConfigParser
cfg = ConfigParser.SafeConfigParser()
cfg.read('.gitconfig')
for sec in cfg.sections():
print '[{}]'.format(sec)
for opt in cfg.options(sec):
print '{} : {}'.format(opt, cfg.get(sec, opt))
$ python configparser.py
[user]
name : Hoge
email : [email protected]
[color]
ui : auto
diff : auto
status : auto
interactive : auto
branch : auto
grep : auto
shlex.split
Il analyse les mots et les divise bien. Contrairement à str.split, il unifie les parties entre guillemets.
In [1]: import shlex
In [2]: '''he said 'you are beautiful!' '''.split() # ' 'L'intérieur est divisé
Out[2]: ['he', 'said', "'you", 'are', "beautiful!'"]
In [3]: shlex.split('''he said 'you are beautiful!' ''') # ' 'L'intérieur est organisé!
Out[3]: ['he', 'said', 'you are beautiful!']
Recommended Posts