获取不同格式的Python元组

时间:2015-07-03 12:08:29

标签: python dictionary tuples

我有一个像这样的python元组,

((1420455415000L, 2L), (1420545729000L, 3L), (1420653453000L, 2L))

我想将其转换为以下格式:

[[1420455415000, 2], [1420545729000, 3], [1420653453000, 2]]

请注意,我还要删除将此元组转换为dict时自动删除的'L'。我已经使用以下命令将元组元组转换为列表:

def listit(t):
        return list(map(listit, t)) if isinstance(t, (list, tuple)) else t

但L仍然存在。这是一个问题,因为我将数据发送到Javascript

我该怎么做?

4 个答案:

答案 0 :(得分:4)

如果您将数据传递给JavaScript,则可以使用json J ava S cript O bject N otation)模块:

>>> import json
>>> json.dumps(((1420455415000L, 2L), (1420545729000L, 3L), (1420653453000L, 2L)))
'[[1420455415000, 2], [1420545729000, 3], [1420653453000, 2]]'

答案 1 :(得分:0)

要获得问题中的输出,您可以使用

t = ((1420455415000L, 2L), (1420545729000L, 3L), (1420653453000L, 2L))

l = [map(int,x) for x in t]

longint的转换只有在值小于或等于sys.maxint时才有效。否则它将保持很长时间。但是转换不是必需的,因为L只是真正表示类型而不是值。

如果你将它传递给javascript,转换为json更有意义。

答案 2 :(得分:0)

L表示数字类型为long,如果您100%确定该数字小于int可以处理的限制(在python中,这意味着在转换为int时,它将保持为int而不会恢复为long,如果数字非常大,则会发生这种情况),然后您可以使用int(num)进行简单转换。但是请注意,L只是一个内部表示,当数字转换为字符串(或打印,内部转换为字符串)时,它不会显示,只有在使用{{{}时才显示1}}。

示例 -

repr()

在你的情况下,要在列表中将long转换为int,请使用 -

>>> i = 2L
>>> i
2L
>>> int(i)
2
>>> print i
2
>>> str(i)
'2'
>>> i
2L

如果列表可能有子列表,请使用递归函数,如 -

>>> l = [1L , 2L , 3L]
>>> print l
[1L, 2L, 3L]
>>> l = map(int, l)
>>> l
[1, 2, 3]
>>> print l
[1, 2, 3]

答案 3 :(得分:0)

' L'仅表示变量的类型,在本例中为Long Integer。因此,无论您发送数据的方式如何,它都将表现为Int。

那就是说,如果你真的不想看到那个' L'您需要使用简单int()

将类型更改为整数