[PYTHON] 100 coups de langue amateur: 04

C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Chapitre 1: Mouvement préparatoire

04. Symbole d'élément

Casser la phrase "Salut, il a menti parce que le bore ne pouvait pas oxyder le fluor. De nouvelles nations pourraient également signer une clause de sécurité de paix. Arthur King Can." En mots 1, 5, 6, 7, 8, 9, 15, 16, Le 19e mot est le premier caractère, et les autres mots sont les deux premiers caractères, et le tableau associatif (type dictionnaire ou type de carte) de la chaîne de caractères extraite à la position du mot (quel nombre de mots depuis le début) Créer.

Le code fini:

main.py


# coding: utf-8
num_first_only = (1, 5, 6, 7, 8, 9, 15, 16, 19)
target = 'Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.'
result = {}

words = target.split(' ')
for (num, word) in enumerate(words, 1):
	if num in num_first_only:
		result[word[0:1]] = num
	else:
		result[word[0:2]] = num

print(result)

Résultat de l'exécution:

Terminal


{'K': 19, 'S': 16, 'He': 2, 'Al': 13, 'B': 5, 'Mi': 12, 'C': 6, 'O': 8, 'Li': 3, 'N': 7, 'Na': 11, 'H': 1, 'Si': 14, 'P': 15, 'Ne': 10, 'Ca': 20, 'Ar': 18, 'F': 9, 'Be': 4, 'Cl': 17}

cette? Seul le Mg (magnésium) de numéro atomique 12 est étrange. C'est Mi. Cependant, le mot à la position correspondante est Might, donc le programme semble être correct.

Il est pratique que ʻenumerate () ` puisse spécifier le numéro de départ. Si vous souhaitez énumérer à partir du milieu d'un itérable avancé, le code semble simple.

Le résultat change à chaque fois que vous l'exécutez! ??

J'ai remarqué que le résultat change à chaque fois que j'exécute ce programme.

Résultat d'exécution 2


{'B': 5, 'Al': 13, 'Be': 4, 'Cl': 17, 'P': 15, 'Si': 14, 'Ca': 20, 'Ne': 10, 'O': 8, 'K': 19, 'S': 16, 'Li': 3, 'He': 2, 'Na': 11, 'C': 6, 'Ar': 18, 'Mi': 12, 'H': 1, 'F': 9, 'N': 7}

Résultat d'exécution 3


{'B': 5, 'He': 2, 'H': 1, 'C': 6, 'Be': 4, 'Si': 14, 'O': 8, 'F': 9, 'P': 15, 'Ca': 20, 'Al': 13, 'Ne': 10, 'Li': 3, 'K': 19, 'S': 16, 'Ar': 18, 'Cl': 17, 'Mi': 12, 'Na': 11, 'N': 7}

Résultat d'exécution 4


{'Cl': 17, 'Si': 14, 'Al': 13, 'C': 6, 'Ca': 20, 'O': 8, 'He': 2, 'N': 7, 'F': 9, 'Ar': 18, 'Na': 11, 'Mi': 12, 'H': 1, 'P': 15, 'Be': 4, 'Ne': 10, 'Li': 3, 'B': 5, 'S': 16, 'K': 19}

L'ordre de stockage dans le dictionnaire est exactement le même, c'est donc un comportement assez intéressant. La fonction de hachage change-t-elle à chaque exécution? Mais pour quoi? Oh, peut-être qu'au moment de print (), la commande change en raison de l'influence de l'adresse utilisée? En passant, lorsque j'étais programmeur C, j'avais du mal avec le compromis entre la dégradation des performances due aux collisions et l'augmentation de la consommation de mémoire des tables de hachage en raison de l'évitement, donc j'étais inquiet pour l'implémentation interne. Je vais. J'ai entendu dire que Python est implémenté en C, alors j'aimerais jeter un coup d'œil si j'ai du temps à perdre.    C'est tout pour le cinquième coup. Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.

Recommended Posts

100 coups de traitement du langage amateur: 41
100 coups de traitement du langage amateur: 56
100 coups de traitement du langage amateur: 24
100 coups de traitement du langage amateur: 50
100 coups de traitement du langage amateur: 59
100 coups de traitement du langage amateur: 70
100 coups de traitement du langage amateur: 62
100 coups de traitement du langage amateur: 92
100 coups de langue amateur: 06
100 coups de traitement du langage amateur: 81
100 coups de traitement du langage amateur: 46
100 coups de traitement du langage amateur: 88
100 coups de traitement du langage amateur: 89
100 coups de traitement du langage amateur: 43
100 coups de traitement du langage amateur: 55
100 coups de traitement du langage amateur: 94
100 coups de traitement du langage amateur: 54
100 coups de langue amateur: 04
100 coups de traitement du langage amateur: 63
100 coups de traitement du langage amateur: 78
100 coups de traitement du langage amateur: 12
100 coups de traitement du langage amateur: 14
100 coups de langue amateur: 08
100 coups de traitement du langage amateur: 42
100 coups de traitement du langage amateur: 19
100 coups de traitement du langage amateur: 73
100 coups de traitement du langage amateur: 75
100 coups de traitement du langage amateur: 98
100 coups de traitement du langage amateur: 83
100 coups de traitement du langage amateur: 95
100 coups de traitement du langage amateur: 32
100 coups de traitement du langage amateur: 96
100 coups de traitement du langage amateur: 87
100 coups de traitement du langage amateur: 72
100 coups de traitement du langage amateur: 79
100 coups de traitement du langage amateur: 23
100 coups de langue amateur: 05
100 coups de langue amateur: 00
100 coups de langue amateur: 02
100 coups de traitement du langage amateur: 37
100 coups de traitement du langage amateur: 21
100 coups de traitement du langage amateur: 68
100 coups de traitement du langage amateur: 11
100 coups de traitement du langage amateur: 90
100 coups de traitement du langage amateur: 74
100 coups de traitement du langage amateur: 66
100 coups de traitement du langage amateur: 28
100 coups de traitement du langage amateur: 64
100 coups de traitement du langage amateur: 34
100 coups de traitement du langage amateur: 36
100 coups de traitement du langage amateur: 77
100 coups de langue amateur: 01
100 coups de traitement du langage amateur: 16
100 coups de traitement du langage amateur: 27
100 coups de traitement du langage amateur: 10
100 coups de traitement du langage amateur: 03
100 coups de traitement du langage amateur: 82
100 coups de traitement du langage amateur: 69
100 coups de traitement du langage amateur: 53
100 coups de traitement du langage amateur: 18
100 coups de traitement du langage amateur: 35