如何删除 Django 中每个列表值之后的 "L"
How to remove "L" which comes after each list value in Django
我做了一个查询,从 model.I 中获取所有字段值,结果存储在查询集中。
queryset=Books.objects.filter(book_type="comic")
现在当我过滤这个查询集时:
query=queryset.filter(~Q(auther_id=1))
autherList=[]
for q in query:
autherList.append(q.auther_id)
print autherList
它将列表打印为:
[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
我的问题是:这个 L 表示什么以及如何删除它以获得简单的 ID 列表。
我查看了这个,但找不到任何相关信息。
这不是文字 L
,它表示数据类型 long
。这只是一个命令行表示,您不必担心,因为它只会为您的模型 id
字段保留更多数字。
L
表示项目是long
类型。
底层数据库库(mysql 可能是?)正在创建 long
类型,同时从数据库中获取它们。所以它们是 long
而不是普通的 int
。
您可以使用 int
函数将它们转换为整数。
>>> lng_number = 23L
>>> int_num = int(lng_number)
>>> int_num
23
如果所有的值都是long
类型,你可以这样使用map
:
>>> long_list = [1L, 3L, 10L]
>>> int_list = map(int, long_list)
>>> int_list
[1, 3, 10]
>>>
Try this one
[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
use this ::
remove_extra = [int(item_list) for item_list in remove_extra]
****** if you want to remove duplicate value from list then use **set()**
like this::
**list(set(remove_extra))**
我已经试过了并且有效
>>> a = [3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
>>> b = map(int,a)
>>> b
[3, 4, 9, 13, 53, 53, 102, 111, 111, 111, 111]
但您不必担心,因为 Python 将其视为数字
>>> a = [3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
>>> b = [c*2 for c in a]
>>> b
[6L, 8L, 18L, 26L, 106L, 106L, 204L, 222L, 222L, 222L, 222L]
我做了一个查询,从 model.I 中获取所有字段值,结果存储在查询集中。
queryset=Books.objects.filter(book_type="comic")
现在当我过滤这个查询集时:
query=queryset.filter(~Q(auther_id=1))
autherList=[]
for q in query:
autherList.append(q.auther_id)
print autherList
它将列表打印为:
[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
我的问题是:这个 L 表示什么以及如何删除它以获得简单的 ID 列表。
我查看了这个,但找不到任何相关信息。
这不是文字 L
,它表示数据类型 long
。这只是一个命令行表示,您不必担心,因为它只会为您的模型 id
字段保留更多数字。
L
表示项目是long
类型。
底层数据库库(mysql 可能是?)正在创建 long
类型,同时从数据库中获取它们。所以它们是 long
而不是普通的 int
。
您可以使用 int
函数将它们转换为整数。
>>> lng_number = 23L
>>> int_num = int(lng_number)
>>> int_num
23
如果所有的值都是long
类型,你可以这样使用map
:
>>> long_list = [1L, 3L, 10L]
>>> int_list = map(int, long_list)
>>> int_list
[1, 3, 10]
>>>
Try this one
[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
use this ::
remove_extra = [int(item_list) for item_list in remove_extra]
****** if you want to remove duplicate value from list then use **set()**
like this::
**list(set(remove_extra))**
我已经试过了并且有效
>>> a = [3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
>>> b = map(int,a)
>>> b
[3, 4, 9, 13, 53, 53, 102, 111, 111, 111, 111]
但您不必担心,因为 Python 将其视为数字
>>> a = [3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
>>> b = [c*2 for c in a]
>>> b
[6L, 8L, 18L, 26L, 106L, 106L, 204L, 222L, 222L, 222L, 222L]