title: Need help creating a dictionary from a list and a function in Python
body: <p>So i'm not sure how to explain it exactly but if you look at this code you may be able to help.</p>
  
  <pre><code>class tower:
      def __init__(self, name, namex, namey, x, y, width, height, nameimg):
          self.name = name
          self.namex = namex
          self.namey = namey
          self.x = x
          self.y = y
          self.width = width
          self.height = height
          self.nameimg = nameimg
  
      def getname(self):
          return self.name
      def getnamex(self):
          return self.namex
      def getnamey(self):
          return self.namey
      def getx(self):
          return self.x
      def gety(self):
          return self.y
      def getwidth(self):
          return self.width
      def getheight(self):
          return self.height
      def getnameimg(self):
          return self.nameimg
  
  
  background = tower("background", "backgroundx", "backgroundy", 0, 0, 1280, 720, backgroundImg)
  ppsh = tower("ppsh", "ppshx", "ppshy", 1127, 140, 120, 40, ppshImg)
  trenchgun = tower("trenchgun", "trenchgunx", "trenchguny", 1207, 140, 120, 27, trenchgunImg)
  thompson = tower("thompson", "thompsonx", "thompsony", 1127, 120, 120, 39, thompsonImg)
  colt = tower("colt", "coltx", "colty", 1, 1, 70, 46, coltImg)
  mg = tower("mg", "mgx", "mgy", 1, 1, 135, 27, mgImg)
  
  towers = [background, ppsh, trenchgun, thompson, colt, mg]
  
  def game_loop():
      positions = {
          (background.getnamex()): (background.getx()),
          (background.getnamey()): (background.gety()),
          (ppsh.getnamex()): (ppsh.getx()),
          (ppsh.getnamey()): (ppsh.gety()),
          (trenchgun.getnamex()): (trenchgun.getx()),
          (trenchgun.getnamey()): (trenchgun.gety()),
          (thompson.getnamex()): (thompson.getx()), 
          (thompson.getnamey()): (thompson.gety()),
          (colt.getnamex()): (colt.getx()), 
          (colt.getnamey()): (colt.gety()),
          (mg.getnamex()): (mg.getx()), 
          (mg.getnamey()): (mg.gety()),
          }
  </code></pre>
  
  <p>if you look at the bottom section i want to make it so i don't have to write out a new line every time but take from the list above. Here is my attempt as an example.</p>
  
  <pre><code>towers = [background, ppsh, trenchgun, thompson, colt, mg]
  
  def game_loop():
      for i in towers:
          positions = {
              (i.getnamex()): (i.getx()),
              (i.getnamey()): (i.gety()),
              }
  </code></pre>
  
  <p>if anyone can help it would be greatly appreciated, i've been stuck on this for a while now.</p>