【问题标题】:How to convert from String to List/Array .?如何从字符串转换为列表/数组。?
【发布时间】:2018-09-29 18:14:57
【问题描述】:

我有 3 个字符串 a=38 186 298 345 0.93345 27 198 277 389 0.86006 33 127 293 354 0.89782

类型(a) len(a) 显示为 22,包括 2 个数字之间的空格

想要将它们转换为列表 需要如下 b=[[38 186 298 345 0.93345][27 198 277 389 0.86006][33 127 293 354 0.89782]]

【问题讨论】:

  • 您的输入 (a) 和输出 (b) 都不是有效的 python。目前还不清楚你想要得到的结果是什么。现在,看起来您要求的是 SyntaxError。另外,您尝试将a 转换为b 是什么?请向我们展示您的代码。

标签: python arrays string python-2.7 list


【解决方案1】:

用换行符和空格分隔它们。使用这个 python 函数。

string_name.split(str="")

欲了解更多信息:https://www.tutorialspoint.com/python/string_split.htm

【讨论】:

    【解决方案2】:

    这是你的目标吗:

    a = '''38 186 298 345 0.93345
    27 198 277 389 0.86006
    33 127 293 354 0.89782'''
    
    b = [line.split() for line in a.split('\n')]
    
    b
    
    #[['38', '186', '298', '345', '0.93345'],
    # ['27', '198', '277', '389', '0.86006'],
    # ['33', '127', '293', '354', '0.89782']]
    

    【讨论】:

    • 我试过这个..它给出了一个错误“列表对象没有属性拆分
    • @AjItHHeGdE 只有当您的变量 a 是一个列表时,才会出现这种情况。是吗?如上所述,它确实有效。
    【解决方案3】:

    这是一种特定于您的数据的解决方案。

    请注意,您的输入不是有效的 Python,我已经在下面解决了这个问题。

    a1 = '38 186 298 345 0.93345'
    a2 = '27 198 277 389 0.86006'
    a3 = '33 127 293 354 0.89782'
    
    res = [[float(j) if float(j) < 1 else int(j) for j in i.split()] \
           for i in [a1, a2, a3]]
    
    # [[38, 186, 298, 345, 0.93345],
    #  [27, 198, 277, 389, 0.86006],
    #  [33, 127, 293, 354, 0.89782]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多