我有一个具有以下结构的字符串。
string =" [abcd,abc,a,b,abc]"
我想将其转换为数组。我一直在Python中使用split函数,但是我在新数组的开头和结尾都有空格和括号。我尝试用一些if语句解决它,但最后我总是丢失一些字母。
请记住,我不知道字符串中元素的长度。它可能是1,2,3等。
答案 0 :(得分:2)
假设你的元素永远不会以空格或方括号结尾或开始,你可以将它们剥离(在分割之前可以剥离括号):
arr = [ x.strip() for x in string.strip('[]').split(',') ]
按预期给出
print (arr)
['abcd', 'abc', 'a', 'b', 'abc']
strip
的好处在于它保留了所有内部角色。用:
string = "[ab cd, a[b]c, a, b, abc]"
你得到:['ab cd', 'a[b]c', 'a', 'b', 'abc']
答案 1 :(得分:2)
你也可以这样做
ggplot(df2, aes(val, fill=period)) + geom_density(alpha=.2)
答案 2 :(得分:1)
解决此问题的另一种方法
string = "[abcd, abc, a, b, abc]"
result = string[1:len(string)-1].split(", ")
print(result)
希望这有帮助
答案 3 :(得分:0)
首先从字符串中删除[
和]
,然后在逗号上拆分,然后从结果项中删除空格(使用strip
)。
答案 4 :(得分:0)
如果您不想使用strip
,可以通过以下笨拙的方式完成:
arr = [e[1:] for e in string.split(',')]
arr[len(arr)-1]=arr[len(arr)-1].replace(']', '')
print(arr)
['abcd', 'abc', 'a', 'b', 'abc']
答案 5 :(得分:0)
如果此列表中的值本身就是变量(看起来是因为它们未被引用),将此字符串转换为等效列表的最简单方法是
string = eval(string)
警告:如果列表中的值应为字符串,则无效。
答案 6 :(得分:0)
我建议关注。
[list_element.strip() for list_element in string.strip("[]").split(",")]
首先删除括号,然后将其拆分。