如何删除Django中每个列表值后面的"L"

Ama*_*pta 3 python django django-orm

我做了一个查询来从模型中获取所有字段值.我将结果存储在一个查询集中.

queryset=Books.objects.filter(book_type="comic")
Run Code Online (Sandbox Code Playgroud)

现在,当我过滤此查询集时:

query=queryset.filter(~Q(auther_id=1))
autherList=[]
for q in query:
    autherList.append(q.auther_id)
print autherList
Run Code Online (Sandbox Code Playgroud)

它将列表打印为:

[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L] 
Run Code Online (Sandbox Code Playgroud)

我的问题是:这个L表示什么以及如何删除它以获得一个简单的ID列表.

我看了看这个,但找不到任何关于这一点.

mas*_*nun 10

L表示该项目是long类型.

底层数据库库(mysql可能是?)long在从db中获取类型时创建类型.所以他们long不是简单的老int.

您可以使用该int函数将它们转换为整数.

>>> lng_number = 23L

>>> int_num = int(lng_number)

>>> int_num
23
Run Code Online (Sandbox Code Playgroud)

如果所有值都是long类型,您可以map像这样使用:

>>> long_list = [1L, 3L, 10L]

>>> int_list = map(int, long_list)

>>> int_list
[1, 3, 10]

>>>
Run Code Online (Sandbox Code Playgroud)