【问题标题】:string '[a b c]' into a list python将字符串'[a b c]'放入列表python
【发布时间】:2016-03-10 17:34:07
【问题描述】:

我有这个字符串 [a b c](我从 csv 加载的数组)。我想把这个字符串变成一个数组[a, b, c]

有什么想法吗?我试过ast.literal_eval,但我得到一个无效的语法错误

【问题讨论】:

  • 这应该可以在上游解决。
  • @pp_ no,因为那不是有效的文字,因此会出现错误
  • @MaxU 你读过问题的最后一部分吗?
  • 已解决!我将只使用 .strip('[') 和 .strip(']') 然后 .split(' ') 将其转换为数组。谢谢!
  • f = '[a b c'] ; f = f.strip('['); f=f.strip(']'); f=f.zplit(' ')

标签: python arrays string list


【解决方案1】:

这样的?使用str.strip 删除开头和结尾[],然后按空格分隔。

>>> '[a b c]'.strip('[]').split()
['a', 'b', 'c']

【讨论】:

  • 太棒了,完全符合我的要求
  • '["a b" "c" "d"]' 呢?
  • @timgeb 我同意它并不完美,但我只是在问题中提供了数据
  • 应该只是strip('[]')。我不确定这些反斜杠是干什么用的。
  • @timgeb: 没有人说["a b" "c" "d"] 是有效输入
【解决方案2】:

我会做str=str[1:-1].split(' ')

str[1:-1] 应该删除第一个和最后一个字符,括号,然后split(' ') 会根据你给它的内容拆分一个列表。

如果您的 csv 数据在值之间使用逗号,则使用 .split(', ')

编辑:只是快速写出来以确保它应该可以满足您的需求

str = "[a b c]"
str=str[1:-1].split(' ')
print str

打印列表['a', 'b', 'c']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-14
    • 2020-07-15
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多