title: Can I Pass Dictionary Values/Entry and Keys to function
body: <p>I am writing a function and intended to use a dictionary key and its value as parameters.  For example:</p>
  
  <pre><code>testDict={'x':2,'xS':4}
  
  def newFunct(key,testDict['key']):
      newvalue=key+str(testDict['key'])
      return newValue
  
  for key in testDict:
      newValue=newFunct(key,testDict[key])
      print newValue
  </code></pre>
  
  <p>I get a SyntaxError:  invalid syntax when I hit the return button after typing the semicolon.  I am guessing this is telling me I can't pass a dictionary value in that form.  Presumably I can define a new variable</p>
  
  <pre><code>for key in testDict:
      xdixt=testDict[key]
      newValue=newFunct(key,xdixt)
  </code></pre>
  
  <p>and def the function using xdixt</p>
  
  <p>but I am hoping there is some trick that I am missing.  I Googled and found some reference to unpacking a dictionary but that didn't seem to work.</p>
  
  <p>This Python stuff is really cool.  My question was came about because I am trying to use some values I stored in a dictionary to create a new directory.  Based on the material I read from Stephan's answer I wondered about how to generalize the information I learned.  My directory name has five different pieces to it, each piece is the result of processing the values from myDict.  The expression to create the directory name was getting too complicated and in my opinion too complicated to easily read.  so I wondered if I could use the same approach to put the pieces into a list and then unpack them when it came time to create the directory name and it worked!</p>
  
  <pre><code>def createDirectory(myKey,**myDict): 
     pathList=[]
     pathList.append(myDict['subKey1'])
     pathList.append(myDict['subKey2'].lstrip('0'))
     pathList.append(myDict['subKey3'])
     etc  
     myPath=os.path.join(*myList)
     os.makedirs(myPath)
     return(myPath)
  </code></pre>