I am not sure if this question has been asked before, but I was unable to find the answer. My question focuses primarily on Python, but it might be applicable to other languages too.
Consider the following function which takes 5 arguments and prints them:
def f(a,b,c,d,e):
for i in a,b,c,d,e:print(i) # 46 bytes
This function, if called as such:
f('1','2','3','4','5')
Outputs:
1
2
3
4
5
The same functionalty can also be achieved with a lower byte count:
def f(**x):
for i in 'abcde':print(x[i]) # 41 bytes
However, if I want to generate the same output, I must now call the function as follows:
f(a='1',b='2',c='3',d='4',e='5')
My question now: Is the requirement for keyworded arguments an appropriate way to reduce the byte count?
I am asking this, because it helped me to save some significant bytes in the challenge Hidden sentences in the license plates.