jonhhy Posted August 22, 2022 at 09:57 AM Report Share #626968 Posted August 22, 2022 at 09:57 AM Bom dia membros do P@P, Como se faz uma atribuição automática de todos os valores num dicionário a partir de uma tupla ou string? Vou mostrar o todo o processo: Inicialmente fiz assim, mas pensei poder automatizar etapas (para treinar): from random import randint plays = {'p1':'', 'p2':'', 'p3':'', 'p4':''} plays['p1'] = randint(1,6) plays['p2'] = randint(1,6) plays['p3'] = randint(1,6) plays['p4'] = randint(1,6) print(plays) {'p1': 4, 'p2': 0, 'p3': 6, 'p4': 0} Contudo, encurtei as linhas assim: gamer = ['p1','p2','p3','p4'] plays2 = dict() for i in gamer: # plays2 += {i:''} plays2[i] = randint(1,6) plays2 {'p1': 5, 'p2': 5, 'p3': 5, 'p4': 1} Depois andei a ver algum código na net e gostaria de conseguir dividir em quatro (individualmente) o tuplo que tem a atribuição vazia '' # Declaring a dictionary d = {} # This is the list which we are # trying to use as a key to # the dictionary a =['p1','p2','p3','p4'] # # converting the list a to a string # p = str(a) # d[p]= '' # converting the list a to a tuple q = tuple(a) d[q]= '' for key, value in d.items(): print(key, ':', value) print(d) ('p1', 'p2', 'p3', 'p4') : {('p1', 'p2', 'p3', 'p4'): ''} Grato pela atenção, cumprimentos jonhhy Link to comment Share on other sites More sharing options...
M6 Posted August 22, 2022 at 10:12 AM Report Share #626970 Posted August 22, 2022 at 10:12 AM Fazes um ciclo pela estrutura e colocas o valor inicial em cada posição. No teu último exemplo, q = tuple(a) d[q]= '' estás a fazer isso sem um ciclo uma vez que o teu dicionário só tem uma chave, que é um tuplo, daí não teres necessidade de recorrer a um ciclo. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
jonhhy Posted August 22, 2022 at 02:53 PM Author Report Share #626975 Posted August 22, 2022 at 02:53 PM Okay M6, estou a analisar outro exercício em que acho que vou precisar de o fazer: # Desafio 093 Crie um programa que gerencie o aproveitamento de um **jogador de futebol**. O programa vai ler o **nome do jogador** e **quantas partidas** ele jogou. Depois vai ler a **quantidade de gols** feitos em **cada partida**. No final, tudo isso será guardado em um **dicionário**, incluindo o **total de gols** feitos durante o campeonato. soccerPlayer = {'nameSP': '','matches': '','totalGols': ''} soccerPlayer['nameSP'] = str(input(' Say soccerPlayer name: ? ')) soccerPlayer['matches'] = int(input(' How many games soccer play: ? ')) totalGols = 0 match = {} for i in range(0, soccerPlayer['matches']): soccerPlayer['matches'][i] = int(input(f'How many goals scored in game {i}: ')) totalGols += soccerPlayer['game'][i] soccerPlayer['totalGols'] = totalGols vou criar um ciclo para match.... com o valor que está em soccerPlayer['matches'] e reestruturar a parte do ciclo Link to comment Share on other sites More sharing options...
jonhhy Posted August 22, 2022 at 03:06 PM Author Report Share #626976 Posted August 22, 2022 at 03:06 PM (edited) match = {} for i in range(0, soccerPlayer['matches']): Como declaro as keys num dict match = {'game{ } = int(input(f'Digite o valor de golos no partido {i}' )) algo assim, qual a sintaxe correta ou funções a utilizar ... ? Edited August 22, 2022 at 03:06 PM by jonhhy Link to comment Share on other sites More sharing options...
jonhhy Posted August 22, 2022 at 03:33 PM Author Report Share #626978 Posted August 22, 2022 at 03:33 PM Resolvi através de listas, soccerPlayer = {'nameSP': '','matches': '','totalGols': ''} soccerPlayer['nameSP'] = str(input(' Say soccerPlayer name: ? ')) soccerPlayer['matches'] = int(input(' How many games soccer play: ? ')) totalGols = 0 match = []#{} for i in range(0, soccerPlayer['matches']): print(f'How many games soccer scored in game {i}') match.append(int(input(''))) totalGols += match[i] # for i in range(0, soccerPlayer['matches']): # match['matches'][i] = int(input(f'How many goals scored in game {i}: ')) # totalGols += soccerPlayer['game'][i] soccerPlayer['totalGols'] = totalGols print(soccerPlayer) obrigado pela atenção 🙂😉 Link to comment Share on other sites More sharing options...
jonhhy Posted August 23, 2022 at 09:46 AM Author Report Share #626989 Posted August 23, 2022 at 09:46 AM (edited) Bom dia P@P, acabei por concretizar assim a proposta de solução ao problema: # number of ...matches could obtained for len(goallist) soccerPl = {'nameSP': '', 'goalsbyGame':[], 'totalGoals': '', 'numMatches': ''} # name by input, goalsbygame append list, totalGoals cyclecounter soccerPl['nameSP'] = str(input(' Say soccerPlayer name? : ')) soccerPl['numMatches'] = int(input(' Say number of matches played? : ')) # vai derivar o número de chaves antes assim, devia por num varíável isolada.., pois consegue ser obtida a partir do len() da lista totalGoals = 0 for i in range(0, soccerPl['numMatches']): print(f'Number of goals scored in match {i} :') soccerPl['goalsbyGame'].append(int(input(''))) totalGoals += soccerPl['goalsbyGame'][i] soccerPl['totalGoals'] = totalGoals print('-='*25) print(soccerPl) print(f"Name is [{soccerPl['nameSP']}]") print(f"The scoring in games was: {soccerPl['goalsbyGame']}.") print(f"Total goals in season until now is: {soccerPl['totalGoals']}.") # Output Say soccerPlayer name? : Jon Say number of matches played? : 4 Number of goals scored in match 0 : 3 Number of goals scored in match 1 : 0 Number of goals scored in match 2 : 1 Number of goals scored in match 3 : 2 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= {'nameSP': 'Jon', 'goalsbyGame': [3, 0, 1, 2], 'totalGoals': 6, 'numMatches': 4} Name is [Jon] The scoring in games was: [3, 0, 1, 2]. Total goals in season until now is: 6. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Jon plays 4 match. => In match 0, scored 3 goals. => In match 1, scored 0 goals. => In match 2, scored 1 goals. => In match 3, scored 2 goals. Edited August 23, 2022 at 09:47 AM by jonhhy Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now