代码之家  ›  专栏  ›  技术社区  ›  Brian MacKay

将序列转换为字典,反之亦然

  •  5
  • Brian MacKay  · 技术社区  · 14 年前

    手动将字典持久化到数据库的一种方法是将其展平为序列,并将序列作为参数传递给cursor.executemany()。

    相反的方法也很有用,即从数据库中读取行并将其转换为字典以供以后使用。

    从myseq到mydict和从mydict到myseq的最佳方式是什么?

    >>> myseq = ((0,1,2,3), (4,5,6,7), (8,9,10,11))
    
    >>> mydict = {0: (1, 2, 3), 8: (9, 10, 11), 4: (5, 6, 7)}
    
    2 回复  |  直到 14 年前
        1
  •  5
  •   Alex Martelli    14 年前
    mydict = dict((s[0], s[1:]) for s in myseq)
    
    myseq = tuple(sorted((k,) + v for k, v in mydict.iteritems()))
    
        2
  •  2
  •   Chris AtLee    14 年前
    >>> mydict = dict((t[0], t[1:]) for t in myseq))
    
    >>> myseq = tuple(((key,) + values) for (key, values) in mydict.items())
    

    myseq中元组的顺序没有保留,因为字典是无序的。