【问题标题】:Convert a string to a list (with elements that are not strings) [duplicate]将字符串转换为列表(包含不是字符串的元素)[重复]
【发布时间】:2017-02-12 12:22:32
【问题描述】:

我有一个格式如下的字符串:

s = "['1', '2', '['a', 'b']']"

我想把它转换成这个列表,其中每个元素都不是字符串:

l = [1, 2, ['a', 'b']]

如果我从一开始就不知道列表中每个最终元素的长度,我该怎么做?

【问题讨论】:

  • 请问您为什么要这样做?(顺便说一下,不要使用内置名称,例如 strlist 变量名称。这是不好的做法)跨度>
  • 至少发布一个格式良好的字符串
  • 这不是一个合适的字符串
  • 我刚刚更正了字符串,感谢您指出。我想这样做是因为字符串在输出文件中,我需要在另一个程序中加载该文件的信息。
  • 字符串从何而来?它们真的都是单引号吗?嵌套有多深?

标签: python list converter


【解决方案1】:

转换输入的微小变化然后你会很容易得到输出,像这样,

In [1]: s = """['1', '2', "['a', 'b']"]"""
In [2]: print s
['1', '2', "['a', 'b']"]
In [3]: out = eval(s)
In [4]: out
Out[1]: ['1', '2', "['a', 'b']"]
In [5]: out[2] = eval(out[2])
In [6]: out
Out[2]: ['1', '2', ['a', 'b']]

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 2018-01-27
    • 1970-01-01
    • 2011-05-27
    • 2011-01-08
    • 2016-05-25
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多