Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-10-03 Per discussione Andrea D'Amore
On Mon, 3 Oct 2022 at 14:58, Gabriele Battaglia  wrote:

>Ciao Andrea, intendi una tupla?

Intendo la definizione di Python di iterabili che accettano l'accesso
con chiave intera da `0` a `len(obj) - 1`, vedi
.

> Una curiosità: ma "tupla" è una parola italiana? Che significa? Io,
> prima di Python non l'avevo mai sentita.

Come dice Carlo Miron ennupla forse è più diffuso ma dato che in
Python leggiamo spesso il tipo built-in mi viene naturale dire tupla.

Ennupla o n-pla è quello che estende al numero "n" il concetto di
tripla, quadrupla, quintupla ("coppia' è irregolare quindi la salto).


--
A.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-10-03 Per discussione Carlo Miron
Il giorno lun 3 ott 2022 alle ore 14:58 Gabriele Battaglia
 ha scritto:
>
> Una curiosità: ma "tupla" è una parola italiana? Che significa? Io,
> prima di Python non l'avevo mai sentita.

è italiano, anche se credo sia più diffuso il nome "ennupla"
https://it.wikipedia.org/wiki/Ennupla

-- 
 THE -WARE LICENSE (Revision ㊷):
 wrote this . 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. — Carlo
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-10-03 Per discussione Gabriele Battaglia

Reply to the Andrea D'Amore's message, wrote on 03/10/2022 at 14:00:

On Fri, 30 Sept 2022 at 18:31, Paolo Leggio  wrote:

Il metodo é giusto ma vuole ricevere una lista come parametro.


A rigore una sequenza.


Ciao Andrea, intendi una tupla?
Grazie per la precisazione.

Una curiosità: ma "tupla" è una parola italiana? Che significa? Io, 
prima di Python non l'avevo mai sentita.


___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-10-03 Per discussione Andrea D'Amore
On Fri, 30 Sept 2022 at 18:31, Paolo Leggio  wrote:
> Il metodo é giusto ma vuole ricevere una lista come parametro.

A rigore una sequenza.


-- 
A.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-09-30 Per discussione Gabriele Battaglia

Reply to the Carlos Catucci's message, wrote on 30/09/2022 at 19:12:



On Fri, 30 Sept 2022 at 18:33, Gabriele Battaglia > wrote:


Ho risolto.
Se serve, posto il codice.


E' sempre interessante vedere come un dev risolve un algoritmo, se ti va 
di postarlo a me farebbe piacere vederlo



Certo Carlos.
E' talmente breve che lo posto tutto, scusandomi se faccio qualcosa di 
non gradito o se la formattazione si perde.
E' un programma che genera dei finti call radioamatoriali che io poi 
invio agli amici che sto allenando in telegrafia affinché li 
decodifichino ad orecchio.
La materia è un po di settore, se quanto ho scritto ti risulta oscuro, 
non preoccuparti, è normale! :) Sono io ad avere interessi fuori 
standard. Ahahahaha.


Ecco il codice.

***
# QRZ - Programma che crea calls inventati e numeri progressivi, da 
usare negli esercizi CW

# Data concepimento 30/9/2022 by IZ4APU.

import random
from string import ascii_uppercase, digits
from GBUtils import key

MDL={'a0a':4,
'a0aa':6,
'a0aaa':15,
'aa0a':6,
'aa0aa':18,
'aa0aaa':36,
'0a0a':2,
'0a0aa':2,
'0a0aaa':2,
'a00a':3,
'a00aa':3,
'a00aaa':4}
# Carlos, questo è il dizionario con i modelli dei calls e la 
percentuale di probabilità che vengano estratti a sorte.
# La prossima def poi si preoccupa di sostituire le "a" con lettere 
casuali e gli "0" con numeri casuali.


def Mkdqrz(c):
q=''
c=c[0]
for j in str(c):
if j.isdigit():
q+=random.choice(digits)
else:
q+=random.choice(ascii_uppercase)
return q

print("QRZ 1.0. crea calls e numeri progressivi per esercitarsi in 
CW\nBy IZ4APU - Gabriele Battaglia.\nQualsiasi tasto per procedere, ESC 
per terminare.")


cont=1
while True:
c=random.choices(list(MDL.keys()), weights=MDL.values(), k=1)
qrz=Mkdqrz(c)
pgr=random.randint(1,)
prompt=f"- {cont:0>4} {qrz} 5nn {pgr:0>4}"
wait=key(msg=prompt)
	# key è una utility mia che interroga la tastiera e ritorna il tasto 
quando lo hai premuto.

print()
if ord(wait)==27: break
cont+=1
print("Bye-Bye & 73. de IZ4APU Gabe")

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-09-30 Per discussione Gabriele Battaglia

Reply to the Paolo Leggio's message, wrote on 30/09/2022 at 18:31:


Ciao.
Il metodo é giusto ma vuole ricevere una lista come parametro.

random.choices(list(cesto.keys()), weights=list(cesto.values()))


Grazie Paolo!
Infatti, funziona così, dovevo capirlo dall'help. :)
Buona serata.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-09-30 Per discussione Carlos Catucci
On Fri, 30 Sept 2022 at 18:33, Gabriele Battaglia  wrote:

> Ho risolto.
> Se serve, posto il codice.
>

E' sempre interessante vedere come un dev risolve un algoritmo, se ti va di
postarlo a me farebbe piacere vederlo

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-09-30 Per discussione Gabriele Battaglia

Ho risolto.
Se serve, posto il codice.
Gabry.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Selezionare voci da un dizionario con casualità pesata.

2022-09-30 Per discussione Paolo Leggio

Ciao.
Il metodo é giusto ma vuole ricevere una lista come parametro.

random.choices(list(cesto.keys()), weights=list(cesto.values()))





> On 30 Sep 2022, at 14:59, Gabriele Battaglia  wrote:
> 
> random.choices(cesto.keys(), weights(cesto.values())

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Selezionare voci da un dizionario con casualità pesata.

2022-09-30 Per discussione Gabriele Battaglia

Ciao.

Se ho:

cesto={'banana':20, 'mela':30, 'pera':50}

Voglio pescare un frutto dal cesto e voglio avere il 20% di possibilità 
di cuccarmi una banana, il 30% una mela e il 50% di prendere un pera.



Dopo gli imports del caso io pensavo di poter fare:


frutto = random.choices(cesto.keys(), weights(cesto.values())


Ma non funziona. Ho letto nella referenza di choices, che non prende un 
elemento dalla lista fornita ma restituisce una lista, k. Quindi non è 
il modulo giusto.



Vi chiedo ne esiste uno già fatto o devo scrivermi io l'algoritmo per 
ottenere ciò che voglio?



Grazie mille, Gabry.

--
--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
Sent from TB on Windows 10, Genus Bononiae's computer.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python