Molto spartano, ci sarà di meglio, ma penso sia abbastanza ideomatico: """ In [1]: initial_data = [(3,'alice'),(7,'bob'),(11,'charlie')]
In [2]: prime_by_name = {k:v for v, k in initial_data} In [3]: prime_by_name Out[3]: {'alice': 3, 'bob': 7, 'charlie': 11} In [4]: for num in range(1, 100): # si può fare la doppia list comprehension ...: out = [name for name, prime in prime_by_name.items() ...: if not num % prime] ...: if out: ...: print(''.join(out)) ...: else: ...: print(num) ...: 1 2 alice 4 5 alice bob 8 alice 10 charlie alice 13 bob alice 16 17 alice 19 20 bobalice charlie 23 alice 25 26 alice bob 29 alice 31 32 alicecharlie 34 bob alice 37 38 alice 40 41 bobalice 43 charlie alice 46 47 alice bob 50 alice 52 53 alice charlie bob alice 58 59 alice 61 62 bobalice 64 65 alicecharlie 67 68 alice bob 71 alice 73 74 alice 76 bobcharlie alice 79 80 alice 82 83 bobalice 85 86 alice charlie 89 alice bob 92 alice 94 95 alice 97 bob alicecharlie """" Il giorno 7 settembre 2017 13:48, Giovanni Porcari < giovanni.porc...@softwell.it> ha scritto: > > > Il giorno 07 set 2017, alle ore 11:02, Carlo Miron <mi...@python.it> ha > scritto: > > > > 2017-09-07 0:58 GMT+02:00 Karim <lemieli...@gmail.com>: > > > >> 2017-09-06 8:25 GMT+10:00 Riccardo Magliocchetti > >> <riccardo.magliocche...@gmail.com>: > >>> > >>> Nel primo caso per profili junior anni fa chiedevo tra le altre queste > >>> due: > >>> - quale linguaggi conosci di più e quanto bene da 1 a 10 > >>> - fizzbuzz in che linguaggio preferisci > >> > >> Fantastico, non conoscevo fizzbuzz. Ho provato a farlo e ho salvato la > >> faccia, allora ho proposto lo stesso esercizio sul gruppo facebook... > >> diciamo che ha acceso gli animi :D > > > > E così parte il golfing sulla soluzione più breve. la mia è > > > > ("Fizz"*(not x%3)+"Buzz"*(not x%5) or x for x in itertools.count(1)) > > > > Elegante :) > > Ma ora il superfizzbuzz: > > data un array arbitrario di numeri primi associati ad altrettante parole, > scrivere l'algoritmo che, nell'enumerazione sostituisca al numero primo e > ai suoi multipli > la parola assegnata e nel caso un numero sia multiplo di più numeri primi > da sostituire, > sostituisca con la concatenazione delle parole. > > il caso fizzbuzz è > > superfizzbuzz([(3,'fizz'),(5,'buzz')]) > > testare ad esempio con : > > superfizzbuzz([(3,'alice'),(7,'bob'),(11,'charlie')]) > > > Parte la sfida ;) > > > G > > > > > > > > > :P > > > > ㎝ > > > > -- > > |:**THE 🍺-WARE LICENSE** *(Revision ㊷)*: > > | <miron@🐍.it> wrote this mail. As long as you retain this > > | notice you can do whatever you want with this stuff. > > | If we meet some day, and you think this stuff is worth it, > > | you can buy me a 🍺 in return. —㎝ > > _______________________________________________ > > Python mailing list > > Python@lists.python.it > > https://lists.python.it/mailman/listinfo/python > > _______________________________________________ > Python mailing list > Python@lists.python.it > https://lists.python.it/mailman/listinfo/python > -- There is a crack, a crack in everything. That’s how the light gets in L. Cohen
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python