将序列的序列转换为字典及其反向转换

5 投票
2 回答
894 浏览
提问于 2025-04-15 22:24

手动把一个字典保存到数据库的一种方法是把它变成一系列的序列,然后把这个序列作为参数传给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 个回答

2
>>> mydict = dict((t[0], t[1:]) for t in myseq))

>>> myseq = tuple(((key,) + values) for (key, values) in mydict.items())

在我的序列myseq中,元组的顺序没有被保留,因为字典是没有顺序的。

5

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后对这些数据进行一些操作,最后再把结果放到另一个地方。这就像是在厨房里做菜,先准备好食材,然后按照步骤做出美味的菜肴。

在这个过程中,我们可能会用到一些工具,比如函数和变量。函数就像是一个小助手,帮我们完成特定的任务;而变量就像是一个储物箱,用来存放我们需要的数据。

当我们写代码的时候,有时会遇到一些问题,比如代码运行不起来,或者结果和我们预期的不一样。这时候,我们就需要仔细检查代码,看看哪里出了问题,就像在做菜时要检查食材是否新鲜,步骤是否正确。

总之,编程就像是一种创造性的工作,需要耐心和细心。通过不断的练习和学习,我们可以掌握这门技能,做出更复杂的程序。

mydict = dict((s[0], s[1:]) for s in myseq)

myseq = tuple(sorted((k,) + v for k, v in mydict.iteritems()))

撰写回答