nuno35 Posted May 19, 2016 at 06:35 PM Report #596500 Posted May 19, 2016 at 06:35 PM Boa Tarde Tenho aqui uma duvida um bocado banal mas queria arranjar a maneira mais simples de a resolver poe exemplo eu tenho uma funçao que recebe 4 valores(strings) funcao(var1,var2,var3,var4) Os valores 'var3' e 'var4' sao sempre os mesmo mas o 'var1' e 'var2' tenho de os ir buscar a um dicionario e eles no dicionario estao assim: '(var1,var2)' se eu puser por exemplo j='(var1,var2)' e fizer: funcao(j,'c','d') Vai dar erro por causa dos pareteses a minha duvida é como é que posso tirar os parenteses? Desde já Obrigado
djthyrax Posted May 19, 2016 at 06:48 PM Report #596501 Posted May 19, 2016 at 06:48 PM Em princípio deverás conseguir fazer funcao(*j, 'a', 'b'). Em último caso poder fazer algo tipo j = j+('a', 'b') seguido de f(*j). Também podes usar f(**j) se j for um dicionário tipo {'var1': 1, 'var2': 'avc'} Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
Solution pwseo Posted May 19, 2016 at 07:02 PM Solution Report #596503 Posted May 19, 2016 at 07:02 PM djthyrax, Só podes utilizar argument unpacking como último argumento para uma função ou se os argumentos seguintes forem todos named arguments. Uma solução seria inverter a ordem dos argumentos, recebendo var1 e var2 como os dois últimos argumentos: >>> def f(c,d,a,b): ... print a, b, c, d ... >>> a = (1, 2) >>> f(3, 4, *a) 1 2 3 4
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