做错误的列表理解

时间:2012-07-13 22:27:38

标签: python list-comprehension

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

我正在接收来自数据库的电话,并将其转换为[['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)

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

2 个答案:

答案 0 :(得分:2)

这有用吗?

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

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

编辑 对于阅读评论的人来说,我的第一个答案是错误的,并且不涉及列表理解。它依赖于改变catnum中的元素,但由于这些元素都在元组中,因此它们不能被变异。

答案 1 :(得分:1)

[[x[0],int(x[1])] for x in catnum]

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