Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

nuno35

[Resolvido] Mudar strings

Recommended Posts

nuno35

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

Share this post


Link to post
Share on other sites
djthyrax

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!

Share this post


Link to post
Share on other sites
pwseo

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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.