Я пытаюсь создать список из аргументов, которые я получаю в URL.
например, я имею:
user.com/?users=0,1,2
Теперь, когда я получаю его в запросе, это стало строкой. Я хочу составить список из "0,1,2" [0,1,2]
Используйте метод разделения
. Пример:
>>> "0,1,2".split(",")
['0', '1', '2']
или даже
>>> [int(x) for x in "0,1,2".split(",")]
[0, 1, 2]
Вы можете использовать следующий код:
s = 'user.com/?users=0,1,2'
s.rpartition('?users=')[2].split(',')
Этот вопрос изначально был помечен Django, поэтому я буду действовать с этим в виду.
Внутри вашей функции просмотра объект request
имеет атрибут Get, который является экземпляром Querydict . Если вы всегда знаете, что вы собираетесь получить разделенный запятой список целых чисел для ключевых «пользователей», вы можете сделать что-то подобное в вашей функции представления:
users_list = request.GET('users', "").split(',')
, которые дадут вам список строк или пустой список Если «пользователи» не были предоставлены в Get. Если вы хотите список целых чисел, вы могли бы обработать его дальше со списком понимания:
users_list = [int(x) for x in users_list]
import ast
x=ast.literal_eval('0,1,2')
print(x)
# (0, 1, 2)
AST.LITERAL_EVAL
как EVAL
, но полностью безопасен, поскольку он ограничивает строку к литералам, таким как строки, номера, кортежи, списки, диктовы, логические значения и Нет
.
Еще одна альтернатива, еще не упомянутая, является использование карта
:
x=map(int,'0,1,2'.split(','))
, чтобы перейти от «0,1,2» на ['0', ' 1 ',' 2 '] Это всего лишь «0,1,2» .split (",")
Так что, если у вас есть в переменной пользователям
, то пользователи .split (",")
даст вам список.
Если вам нужны они как ints вместо строк, это будет [int (x) для x у пользователей .split (',')]
.
Для преобразования строки в список используйте Split
.
Чтобы преобразовать список строк в список целых чисел, используйте список списков с INT
.
Так что это все вместе, это выглядит что-то подобное:
s = '0,1,2'
l = [int(x) for x in s.split(',')]
Результаты:
[1, 2, 3]
Чтобы перейти от "0,1,2" к ['0', '1', '2'], нужно просто "0,1,2".split(",")
Так что если он есть в переменной users
, то users.split(",")
выдаст вам список.
Если они нужны вам как ints вместо строк, то это будет [int(x) для x в users.split(',')]
.