вопрос по словарю Python - PullRequest
       3

вопрос по словарю Python

0 голосов
/ 28 января 2010

All

Это запрос от шаблона, который я получаю

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')

Спасибо.

Ответы [ 3 ]

5 голосов
/ 28 января 2010

Примерно так:

try:
    int_subjects = [int(x) for x in new_subjects]
except ValueError:
    #There was an error parsing.
4 голосов
/ 28 января 2010

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 для преобразования элементов списка в целые числа.

3 голосов
/ 28 января 2010
try:
    int_subjects = map(int, new_subjects)
except ValueError:
    #There was an error parsing.

Использование timeit в ipython показывает, что карта немного быстрее, чем понимание в этом случае

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...