Преобразование строки для списка в Python

Я пытаюсь создать список из аргументов, которые я получаю в URL.

например, я имею:

 user.com/?users=0,1,2

Теперь, когда я получаю его в запросе, это стало строкой. Я хочу составить список из "0,1,2" [0,1,2]

8
задан Ethan Furman 15 November 2011 в 10:02
поделиться

6 ответов

Используйте метод разделения . Пример:

>>> "0,1,2".split(",")
['0', '1', '2']

или даже

>>> [int(x) for x in "0,1,2".split(",")]
[0, 1, 2]
31
ответ дан 3 November 2019 в 12:27
поделиться

Вы можете использовать следующий код:

s = 'user.com/?users=0,1,2'
s.rpartition('?users=')[2].split(',')
0
ответ дан 3 November 2019 в 12:27
поделиться
121 --- 2602299-

Этот вопрос изначально был помечен Django, поэтому я буду действовать с этим в виду.

Внутри вашей функции просмотра объект request имеет атрибут Get, который является экземпляром Querydict . Если вы всегда знаете, что вы собираетесь получить разделенный запятой список целых чисел для ключевых «пользователей», вы можете сделать что-то подобное в вашей функции представления:

users_list = request.GET('users', "").split(',')

, которые дадут вам список строк или пустой список Если «пользователи» не были предоставлены в Get. Если вы хотите список целых чисел, вы могли бы обработать его дальше со списком понимания:

users_list = [int(x) for x in users_list]
6
ответ дан 3 November 2019 в 12:27
поделиться
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(','))
3
ответ дан 3 November 2019 в 12:27
поделиться

, чтобы перейти от «0,1,2» на ['0', ' 1 ',' 2 '] Это всего лишь «0,1,2» .split (",")

Так что, если у вас есть в переменной пользователям , то пользователи .split (",") даст вам список.

Если вам нужны они как ints вместо строк, это будет [int (x) для x у пользователей .split (',')] .

-121--3433071-

Для преобразования строки в список используйте Split .

Чтобы преобразовать список строк в список целых чисел, используйте список списков с INT .

Так что это все вместе, это выглядит что-то подобное:

s = '0,1,2'
l = [int(x) for x in s.split(',')]

Результаты:

[1, 2, 3]
2
ответ дан 3 November 2019 в 12:27
поделиться

Чтобы перейти от "0,1,2" к ['0', '1', '2'], нужно просто "0,1,2".split(",")

Так что если он есть в переменной users, то users.split(",") выдаст вам список.

Если они нужны вам как ints вместо строк, то это будет [int(x) для x в users.split(',')].

2
ответ дан 3 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: