次のようなテーブル table1 があったとして、

key val
----------
 A  1
 A  2
 B  1
 B  3
 B  4
 C  1
 C  3

これから
{ 'A': [1, 2], 'B': [1, 3, 4], 'C': [1, 3] }
というdictをつくりたいんですが、一番スマートな方法はどのようになりますか。
今は次のようにしていますが、なんかもっといい方法がないかと思っています。

import MySQLdb
conn = MySQLdb.connect()
curosr = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor.execute("select key, val from table1")
lst = cursor.fetchall()
table = {}
for dct in lst:
 key, val = dct['key'], dct['val']
 values = table.get(key)
 if values is None:
  table[key] = values = []
 values.append(val)