Java code

Modérateur : Michel Quercia

Errys
Messages : 73
Enregistré le : mer. oct. 04, 2017 3:58 pm
Classe : TS Spe math

Re: Java code

Message par Errys » lun. oct. 30, 2017 12:53 am

C'est l'avantage du python :p

Il faut quand même garder en tête que c'est pas forcément optimisé de faire ça niveau temps/mémoire :)
Lycée 2015-2018
Futur taupin

Avatar du membre
fakbill
Messages : 11078
Enregistré le : mer. juil. 30, 2008 4:59 pm
Classe : Dr.-Ing

Re: Java code

Message par fakbill » lun. oct. 30, 2017 5:12 pm

Ca c'est du python moche de qui ne sait pas pas que set existe et qu'on peut fait "list de str'"
En python pythonic, ça donne :
x=122345678
len(set(list(str(x))))
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Lily1998
Messages : 145
Enregistré le : jeu. févr. 16, 2017 8:16 pm
Classe : PC*

Re: Java code

Message par Lily1998 » lun. oct. 30, 2017 5:39 pm

fakbill a écrit :
lun. oct. 30, 2017 5:12 pm
Ca c'est du python moche de qui ne sait pas pas que set existe et qu'on peut fait "list de str'"
Désolée, je ne suis pas une pro du Python :p

siro
Messages : 1848
Enregistré le : dim. mai 01, 2016 8:09 pm
Classe : framboise

Re: Java code

Message par siro » lun. oct. 30, 2017 6:32 pm

fakbill a écrit :
lun. oct. 30, 2017 5:12 pm
Ca c'est du python moche de qui ne sait pas pas que set existe et qu'on peut fait "list de str'"
En python pythonic, ça donne :
x=122345678
len(set(list(str(x))))
J'aurais aussi fait un truc du genre.
AKA "pourquoi recompter des éléments quand Python sait déjà en faire un ensemble non redondant comme un grand ?".
Faut pas spécifier quand même à un moment les paramètres de str ? Il les met naturellement en base 10 ? (Je connais trop mal les subtilités de Python pour savoir.)
Chaque vénérable chêne a commencé par être un modeste gland. Si on a pensé à lui pisser dessus.

Vends réseau ParisTech d'occasion. État quasi-neuf, a très peu servi.

Avatar du membre
fakbill
Messages : 11078
Enregistré le : mer. juil. 30, 2008 4:59 pm
Classe : Dr.-Ing

Re: Java code

Message par fakbill » lun. oct. 30, 2017 7:26 pm

Lily1998 : pas de problème :) En gros, en python, si tu commences à écrire une boucle for alors tu peux te dire qu'il y a probablement une façon plus élégante et souvent bien plus rapide de faire. Ce n'est bien sûr pas toujours vrai mais ça l'est souvent.

siro : non comme ça ça marche. Par contre, x=1e10 sera un float et non un int comme dans je crois tous les langages dont j'ai entendu parler (hum mathematica non je crois...pas sûr...à voir...bref...)
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

siro
Messages : 1848
Enregistré le : dim. mai 01, 2016 8:09 pm
Classe : framboise

Re: Java code

Message par siro » lun. oct. 30, 2017 7:32 pm

Y'a pas moyen avec du duck typping de faire gober 1e10 comme un entier à Python ?
Chaque vénérable chêne a commencé par être un modeste gland. Si on a pensé à lui pisser dessus.

Vends réseau ParisTech d'occasion. État quasi-neuf, a très peu servi.

loupi
Messages : 336
Enregistré le : mer. févr. 27, 2013 5:45 pm
Classe : ENVT

Re: Java code

Message par loupi » mar. oct. 31, 2017 12:46 am

fakbill a écrit :
lun. oct. 30, 2017 5:12 pm
Ca c'est du python moche de qui ne sait pas pas que set existe et qu'on peut fait "list de str'"
En python pythonic, ça donne :
x=122345678
len(set(list(str(x))))
en python python(econom)ic : len(set(str(x)))

Errys
Messages : 73
Enregistré le : mer. oct. 04, 2017 3:58 pm
Classe : TS Spe math

Re: Java code

Message par Errys » mar. oct. 31, 2017 1:18 am

siro a écrit :
lun. oct. 30, 2017 7:32 pm
Y'a pas moyen avec du duck typping de faire gober 1e10 comme un entier à Python ?
Mon expérience en python est très limitée mais int(1e10) devrait marcher.
Lycée 2015-2018
Futur taupin

Avatar du membre
fakbill
Messages : 11078
Enregistré le : mer. juil. 30, 2008 4:59 pm
Classe : Dr.-Ing

Re: Java code

Message par fakbill » mar. oct. 31, 2017 3:47 pm

loupi : ha oui merde!! ma list ne sert à rien...et c'est meme un bel exemple de ce que je vais décrire en dessous...je suis une buse.

Vous n'avez pas compris le system de typage de python ;)
C'est bien du duck typing donc 'on ne fait pas gober 1e10 comme un entier" ni on ne le caste en entier avec int.
x=1e10 c'est un float. Si on fait qq manipulation que ce soit avec ce x, que cette manipulation requiert que l'objet x ait une methode (je simplifie un peu) TRUC alors python dira "je me fous que ce soit un int, un float ou je ne sais quoi, on me demande de faire x.TRUC, x a une method truc donc ça marche. Tout ca pour dire que python ne fait pas de verification de type comme en C. Il vérifie seulement que l'objet sait faire (si ça marche et crie comme un canard alors on peut dire que c'est un canard....mais on s'en fout meme que ce soit un canard...ça marche et ça fait coincoin c'est ce qu'on veut)

Exemple pratique avec ma buserie:
Je voulais utiliser set pour virer les elements qui sont deux fois dans une liste....or tout ce que set(x) demande sur x c'est (en gros) de pouvoir accéder aux elements de x un par un. On peut très bien accéder aux elements d'une str un par un donc nul besoin de la caster en list.

c'est PENIBLE cette autocorrection en anglais...
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité