【问题标题】:Python - convert string to an arrayPython - 将字符串转换为数组
【发布时间】:2018-10-06 00:15:46
【问题描述】:

如何使用 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"]' 字符串列表“事物”。

【问题讨论】:

  • 这看起来像一个列表,而不是一个字符串...
  • 你说的是这个列表里面的元素吗?
  • 这看起来像是一个重复的问题——我相信我至少见过几个变种。无论如何,您尝试了什么?为什么它不起作用?
  • ast.literal_eval()json.loads() ...

标签: python arrays string


【解决方案1】:

处理字符串'["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数组module,那么你可以这样做:

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

【讨论】:

  • 如果任何元素包含 [ 或 ] 作为其自身文本的一部分,则第一个选项会破坏您的数据。第二个和第三个选项不是从字符串开始,与字符串到数组或列表的转换无关。
【解决方案2】:

你可以这样做

import ast

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

【讨论】:

  • @GCien 这应该被标记为正确答案。
【解决方案3】:

你可以使用eval函数

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

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

【讨论】:

【解决方案4】:

你也可以这样做

import json

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

【讨论】:

    猜你喜欢
    • 2021-07-09
    • 2020-04-06
    • 2018-09-19
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2016-02-04
    • 2021-06-09
    相关资源
    最近更新 更多