我有一个具有以下结构的字符串。
字符串 = "[abcd, abc, a, b, abc]"
我想将其转换为数组。我一直在使用Python中的split函数,但我得到了新数组中开始和结束括号上的空格和括号。我尝试使用一些if语句解决这个问题,但是我一直会错过一些单词末尾的字母。
请注意,我不知道字符串中元素的长度。它可能是1、2、3等。
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']
.split(', ')
(以逗号和空格分割),就可以避免使用.strip()
。 - Ma0>>> s = string[1:len(string)-1].split(", ")
>>> s
['abcd', 'abc', 'a', 'b', 'abc']
string = eval(string)
注意:如果您的列表中的值应为字符串,则此方法不起作用。
string = "[abcd, abc, a, b, abc]"
result = string[1:len(string)-1].split(", ")
print(result)
如果您不想使用 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']
[list_element.strip() for list_element in string.strip("[]").split(",")]
首先去掉括号,然后按照相应的方式分割。
首先从字符串中删除[
和]
,然后按逗号分割,最后使用strip
函数删除结果项中的空格。