GCi*_*ien 1 python arrays string
我将如何将以下字符串转换为带有 python 的数组(此字符串可能有无限数量的项目)?
'["Foo","Bar","Baz","Woo"]'
Run Code Online (Sandbox Code Playgroud)
这绝对也是一个字符串表示。type()给:
<class 'str'>
Run Code Online (Sandbox Code Playgroud)
知道了。
interestedin = request.POST.get('interestedIn')[1:-1].split(',')
interested = []
for element in interestedin:
interested.append(element[1:-1])
Run Code Online (Sandbox Code Playgroud)
哪里request.POST.get('interestedIn')给出了'["Foo","Bar","Baz","Woo"]'字符串列表“东西”。
Lex*_*yan 17
你可以这样做
import ast
list = '["Foo","Bar","Baz","Woo"]'
list = ast.literal_eval(list)
print list
Run Code Online (Sandbox Code Playgroud)
您可以使用eval函数:
list = eval('["Foo", "Bar", "Baz", "Woo"]')
print (list)
# ['Foo', 'Bar', 'Baz', 'Woo']
Run Code Online (Sandbox Code Playgroud)
根据baptx 的评论,另一种方法(可能是更好的方法)是使用ast包:
from ast import literal_eval
list = literal_eval('["Foo", "Bar", "Baz", "Woo"]')
print (list)
# ['Foo', 'Bar', 'Baz', 'Woo']
Run Code Online (Sandbox Code Playgroud)
小智 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
Run Code Online (Sandbox Code Playgroud)
如果你的意思是使用Python数组模块,那么你可以这样做:
import array as ar
x = ar.array('c') # Character array
for i in ['Foo', 'Bar', 'Baz', 'Woo']: x.extend(ar.array('c', i))
print x #array('c', 'FooBarBazWoo')
Run Code Online (Sandbox Code Playgroud)
如果你考虑使用NumPy,事情会简单得多:
import numpy as np
y = np.array(['Foo', 'Bar', 'Baz', 'Woo'])
print y # ['Foo' 'Bar' 'Baz' 'Woo']
Run Code Online (Sandbox Code Playgroud)