如何将value_list转换为Django中的列表

时间:2016-02-17 06:00:22

标签: python django list

您好我的values_list如下:

x = [(u'All',), (u'C4DI',), (u'C4MI',), (u'TBAZ_DI',), (u'TBAZ_FI',), (u'TTAZ_DI',), (u'TTAZ_FI',)]

如何将此values_list转换为正常列表,如

[Al, C4, C4, ...]

任何想法的人?我试过了

y = list(x)

但那并没有奏效。伙计我怎么能这样做?

5 个答案:

答案 0 :(得分:3)

使用参数flat=True立即获得展平列表:

Model.objects.values_list('column', flat=True)

答案 1 :(得分:1)

你可以尝试这一切,这里我使用str()将unicode转换为str

value is 954.0
is nil

答案 2 :(得分:1)

因为,您只需要列表中的前2个字符:

>>> x = [(u'All',), (u'C4DI',), (u'C4MI',), (u'TBAZ_DI',), (u'TBAZ_FI',), (u'TTAZ_DI',), (u'TTAZ_FI',)]
>>> [str(i[0][:2]) for i in x]
['Al', 'C4', 'C4', 'TB', 'TB', 'TT', 'TT']

编辑:如果您使用flat=True(如yedpodtrztiko's answer中所述),请使用以下代码:

[str(i[:2]) for i in x]

x = [u'C4DI', u'C4MI', u'All', u'TTAZ_DI', u'TBAZ_DI', u'TTAZ_FI', u'TBAZ_FI']

答案 3 :(得分:0)

试试这个

y = [str(a[0][:2]) for a in x]

你想要前两个字符,然后我只需要切片2 see the python shell I tried

答案 4 :(得分:-1)

你可以使用list comprehension这样做:

x = [(u'All',), (u'C4DI',), (u'C4MI',), (u'TBAZ_DI',), (u'TBAZ_FI',), (u'TTAZ_DI',), (u'TTAZ_FI',)]

q = [str(i[0] + i[1]) for a in x for i in a]