获取不同格式的Python元组
我有这样一个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
((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)后得到的结果,它没有给出所需的输出。谢谢你的帮助!