【问题标题】:Turning a string into list of positive and negative numbers将字符串转换为正负数列表
【发布时间】:2013-08-12 10:37:38
【问题描述】:

如果我有一个始终采用'a,b,c,d,e' 形式的字符串,其中字母是正数或负数,例如'1,-2,3,4,-5',我想将其转换为元组,例如 (1,-2,3,4,-5 ),我该怎么做?

【问题讨论】:

    标签: python string list tuples converter


    【解决方案1】:

    一种方法是使用ast.literal_eval:

    安全地计算表达式节点或包含 Python 表达式的字符串。提供的字符串或节点只能由以下 Python 文字结构组成:字符串、数字、元组、列表、字典、布尔值和 None

    这可用于安全地评估来自不受信任来源的包含 Python 表达式的字符串,而无需自己解析值。

    >>> import ast
    >>> ast.literal_eval('1,-2,3,4,-5')
    (1, -2, 3, 4, -5)
    

    【讨论】:

    • 有趣的方式!顺便说一句,关于 SO 的讨论很好:)
    【解决方案2】:

    , 上拆分并映射到int()

    map(int, inputstring.split(','))
    

    这会产生一个列表;如果您需要一个元组,只需将其包装在 tuple() 调用中:

    tuple(map(int, inputstring.split(',')))
    

    在 Python 3 中,map() 返回一个生成器,因此您可以使用列表推导式来生成列表:

    [int(el) for el in inputstring.split(',')]
    

    演示:

    >>> inputstring = '1,-2,3,4,-5'
    >>> map(int, inputstring.split(','))
    [1, -2, 3, 4, -5]
    >>> tuple(map(int, inputstring.split(',')))
    (1, -2, 3, 4, -5)
    

    【讨论】:

      【解决方案3】:

      另一种方式:

      >>> inputlist = '1,-2,3,4,-5'
      >>> tuple(int(x) for x in inputlist.split(','))
      (1, -2, 3, 4, -5)
      >>>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 2014-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-14
        相关资源
        最近更新 更多