【发布时间】:2010-01-28 14:42:51
【问题描述】:
全部,
这是我得到的模板的请求
u'subjects': [u'7', u'4', u'5', u'3', u'2', u'1']
在我看来如何提取像7 4 5 3 2 1这样的值
我如何从
中提取上述序列new_subjects=request.POST.get('subjects')
谢谢。
【问题讨论】:
全部,
这是我得到的模板的请求
u'subjects': [u'7', u'4', u'5', u'3', u'2', u'1']
在我看来如何提取像7 4 5 3 2 1这样的值
我如何从
中提取上述序列new_subjects=request.POST.get('subjects')
谢谢。
【问题讨论】:
类似于以下内容:
try:
int_subjects = [int(x) for x in new_subjects]
except ValueError:
#There was an error parsing.
【讨论】:
except 子句。
int("hi mom") 你就知道了。这就是我所做的。我不依赖记忆——杜松子酒毁了我所拥有的一切。
request.POST 是 QueryDict 的一个实例,它有一个名为 getlist 的方法,该方法返回给定键的值列表。
例子:
>>> new_subjects = request.POST.getlist('subjects')
>>> print new_subjects
[u'7', u'4', u'5', u'3', u'2', u'1']
请参阅gnibbler's response 将列表项转换为整数。
【讨论】:
try:
int_subjects = map(int, new_subjects)
except ValueError:
#There was an error parsing.
在 ipython 中使用 timeit 表明在这种情况下 map 比理解略快
In [99]: timeit map(int,new_subjects)
100000 loops, best of 3: 7.81 µs per loop
In [100]: timeit [int(x) for x in new_subjects]
100000 loops, best of 3: 8.8 µs per loop
【讨论】: