0

我一直在尝试在上下文中进行列表理解的每一次迭代。

我收到来自数据库的呼叫,将其转换为[['item', long integer]].

我想将长整数转换为常规整数,因为我其余的数学都是常规积分。

我正在尝试这个:

catnum = c.fetchall()
catnum = [list(x) for x in catnum]
for x in catnum:
        [int(y) for y in x]

我也尝试过 x[1] 和其他一些东西(它总是在列表中的位置 1)

没运气。如何仅将列表中的第二个值转换为常规整数?

4

2 回答 2

2

这行得通吗?

catnum=[[x,int(y)] for x,y in catnum]

但是,我认为值得一问为什么需要进行这种转换。Python 应该可以在任何常规整数可以工作的地方很好地处理长整数。将它们保留为长整数会有轻微的性能损失,但在大多数情况下,我认为这不能证明转换为常规整数的额外工作是合理的。

为阅读评论的人编辑 ,我的第一个答案是不正确的,并且不涉及列表理解。它依赖于对 catnum 中的元素进行变异,但由于这些元素在元组中,它们不能被变异。

于 2012-07-13T22:32:02.627 回答
1
[[x[0],int(x[1])] for x in catnum]

这将返回一个列表列表,其中名称中的第一个条目和第二个条目是向下转换为普通整数的值。

于 2012-07-13T22:33:36.090 回答