【问题标题】:Converting a list into comma separated and add quotes in python将列表转换为逗号分隔并在python中添加引号
【发布时间】:2019-01-06 20:31:10
【问题描述】:

我有:

val = '[12 13 14 16 17 18]'

我想拥有:

['12','13','14','16','17','18']

我已经完成了

x = val.split(' ')
y = (" , ").join(x)

结果是

'[12 , 13 , 14 , 16 , 17 , 18 ]'

但不是确切的报价也是如此

在 Python 中执行此操作的最佳方法是什么?

【问题讨论】:

  • 使用正则表达式:re.findall(r'\d+', val)
  • val.strip('[]').split() 但我会质疑您是如何获得原始输入的
  • val = val[1:-1].split()
  • 这与 Pandas 有什么关系?

标签: python list pandas


【解决方案1】:
>>> val
'[12 13 14 16 17 18]'
>>> val.strip("[]").split(" ")
['12', '13', '14', '16', '17', '18']

【讨论】:

  • 只能strip('[]')一次
【解决方案2】:

用逗号替换空格后可以使用ast.literal_eval

from ast import literal_eval

val = '[12 13 14 16 17 18]'
res = list(map(str, literal_eval(val.replace(' ', ','))))

print(res, type(res))

['12', '13', '14', '16', '17', '18'] <class 'list'>

【讨论】:

  • 我相信需要一个字符串列表
【解决方案3】:

仅当您可以处理regex

import re

val = '[12 13 14 16 17 18]'
print(re.findall(r'\d+', val))

# ['12', '13', '14', '16', '17', '18']

【讨论】:

    【解决方案4】:

    如果你真的需要括号

    val = '[12 13 14 16 17 18]'
    val = val.replace('[','')
    val = val.replace(']','')
    val = val.split(' ')
    

    【讨论】:

      【解决方案5】:

      你可以用这个:

      val = '[12 13 14 16 17 18]'
      val = val[1:-1].split()
      print(val)
      

      输出:

      ['12', '13', '14', '16', '17', '18']
      

      【讨论】:

        【解决方案6】:

        你可以这样做

        val.strip('[]').split()
        

        【讨论】:

          猜你喜欢
          • 2015-06-10
          • 1970-01-01
          • 2016-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多