获取不同格式的Python元组

获取不同格式的Python元组,python,dictionary,tuples,Python,Dictionary,Tuples,我有这样一个python元组 ((1420455415000L, 2L), (1420545729000L, 3L), (1420653453000L, 2L)) 我想将其转换为以下格式: [[1420455415000, 2], [1420545729000, 3], [1420653453000, 2]] 请注意,我还想删除将此元组转换为dict时自动删除的“L”。我已使用以下方法将元组的元组转换为列表: def listit(t): return list(map(li

我有这样一个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


我怎样才能做到这一点?

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

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

l = [map(int,x) for x in t]
只有当值小于或等于
sys.maxint
时,从
long
int
的转换才会起作用。否则它会持续很长时间。转换是不必要的,因为
L
实际上只是表示类型,而不是值


如果将其传递给javascript,那么转换为json会更有意义。

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

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

l = [map(int,x) for x in t]
只有当值小于或等于
sys.maxint
时,从
long
int
的转换才会起作用。否则它会持续很长时间。转换是不必要的,因为
L
实际上只是表示类型,而不是值


如果要将数据传递给javascript,则转换为json会更有意义。

如果要将数据传递给javascript,则可以使用(JavaSscriptOobjectNotation)模块轻松完成此操作:


如果要将数据传递给JavaScript,可以通过(JavaSscriptObjectNotation)模块轻松完成:


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

范例-

>>> i = 2L
>>> i
2L
>>> int(i)
2
>>> print i
2
>>> str(i)
'2'
>>> i
2L
在您的情况下,要在列表中将long转换为int,请使用-

>>> l = [1L , 2L , 3L]
>>> print l
[1L, 2L, 3L]
>>> l = map(int, l)
>>> l
[1, 2, 3]
>>> print l
[1, 2, 3]
如果列表可能有子列表,请使用递归函数,如-

def convertlist(l):
    if isinstance(l , (list, tuple)):
        return list(map(convertlist, l))
    elif isinstance(l , long):
        return int(l)
    else:
        return l
>>> l = [1L , 2L , [3L]]
>>> convertlist(l)
[1, 2, [3]]

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

范例-

>>> i = 2L
>>> i
2L
>>> int(i)
2
>>> print i
2
>>> str(i)
'2'
>>> i
2L
在您的情况下,要在列表中将long转换为int,请使用-

>>> l = [1L , 2L , 3L]
>>> print l
[1L, 2L, 3L]
>>> l = map(int, l)
>>> l
[1, 2, 3]
>>> print l
[1, 2, 3]
如果列表可能有子列表,请使用递归函数,如-

def convertlist(l):
    if isinstance(l , (list, tuple)):
        return list(map(convertlist, l))
    elif isinstance(l , long):
        return int(l)
    else:
        return l
>>> l = [1L , 2L , [3L]]
>>> convertlist(l)
[1, 2, [3]]

“L”仅表示变量的类型,在本例中为长整数。因此,无论您以何种方式发送数据,它都将表现为Int


也就是说,如果您真的不想看到“L”,您需要使用simple将类型更改为整数:

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


也就是说,如果你真的不想看到“L”,你需要用simple:

将类型更改为integer,你知道长整数仍然是整数,如果数字太大,强制转换将不会起任何作用。你知道长整数仍然是整数,如果数字太大,施法也没用。是的,我指的是一个通过后会变为int的数字。编辑并更改了措辞。是的,我指的是一个通过后会变为int的数字。编辑并更改了措辞。这是我在将其转换为dict(k)后最初尝试的方法,它没有给出所需的输出。谢谢你的帮助!这是我最初尝试将其转换为dict(k)后得到的结果,它没有给出所需的输出。谢谢你的帮助!