Python - преобразовать строку в массив

Как преобразовать следующую строку в массив с помощью Python (в этой строке может быть неопределенное количество элементов)?

'["Foo","Bar","Baz","Woo"]'

Это определенно также строковое представление. type() дал:

<class 'str'>

Обновлять:

Понятно.

interestedin = request.POST.get('interestedIn')[1:-1].split(',')

interested = []

for element in interestedin:
    interested.append(element[1:-1])

Где request.POST.get('interestedIn') дал строковый список '["Foo","Bar","Baz","Woo"]' «вещь».

Это похоже на список, а не на строку ...

sacuL 25.04.2018 15:29

Возможный дубликат Как преобразовать строку в список в Python?

code11 25.04.2018 15:30

вы говорите об элементе внутри этого списка?

Ankush Rathi 25.04.2018 15:30

Похоже, это повторяющийся вопрос - я уверен, что видел по крайней мере несколько вариантов. В любом случае, что вы пробовали и почему это не сработало?

Jongware 25.04.2018 15:31
ast.literal_eval() или json.loads() ...
zwer 25.04.2018 15:31

Я предполагаю, что он хочет "" .join (str_list), и имеет очень странный способ написать вопрос.

Rohi 25.04.2018 15:32

Создание переменной путем копирования / вставки вашей «следующей строки» определенно не возвращает класс str при запуске type (). По крайней мере, на моей машине.

dfundako 25.04.2018 15:35

Вау - -10 XD да, это точно струна. Я обещаю. type (my_variable) дает <class 'str'>. Я пропустил распорки ».

GCien 25.04.2018 15:38

* Это происходит из-за передачи массива через почтовый запрос AJAX.

GCien 25.04.2018 15:40

Понял - только что обновил свой вопрос. Извиняюсь за такой странный вопрос! :)

GCien 25.04.2018 16:04

Отвечает ли это на ваш вопрос? Преобразовать строковое представление списка в список

Georgy 13.12.2019 15:10
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
11
51 630
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Работа со строкой '["Foo", "Bar", "Baz", "Woo"]'

str = '["Foo","Bar","Baz","Woo"]'
str1 = str.replace(']','').replace('[','')
l = str1.replace('"','').split(",")
print l # ['Foo', 'Bar', 'Baz', 'Woo'] A list

Если вы имеете в виду использование массива Python модуль, вы могли бы сделать так:

import array as ar
x=ar.array('c')  #char array
for i in ['Foo', 'Bar', 'Baz', 'Woo']: x.extend(ar.array('c',i))
print x  #array('c', 'FooBarBazWoo')

Это будет намного проще, если вы рассмотрите возможность использования numpy:

import numpy as np
y=np.array(['Foo', 'Bar', 'Baz', 'Woo'])
print y #  ['Foo' 'Bar' 'Baz' 'Woo']

Первый вариант портит ваши данные, если какой-либо из элементов содержит [или] как часть собственного текста. Второй и третий варианты не начинаются со строки и не имеют ничего общего с преобразованием строки в массив или списком.

Eduardo 05.08.2020 04:43

Ты можешь сделать это

import ast

list = '["Foo","Bar","Baz","Woo"]'
list = ast.literal_eval(list)
print list

@GCien Это должно быть отмечено как правильный ответ.

Eduardo 05.08.2020 04:47

Вы можете использовать функцию eval

list = eval('["Foo","Bar","Baz","Woo"]')
print (list)

# ['Foo', 'Bar', 'Baz', 'Woo']

вы также можете сделать это

import json

json.loads('["Foo","Bar","Baz","Woo"]')

Другие вопросы по теме