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:
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:
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.