将Python中的列表转换为逗号分隔并添加引号

4

我有:

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中,最好的方法是什么?


1
使用正则表达式:re.findall(r'\d+', val) - user3483203
1
val.strip('[]').split() 但我会质疑您如何获得原始输入。 - Chris_Rands
1
val = val[1:-1].split() - Vasilis G.
将列表的字符串表示转换为列表的方法是什么?重复问题:https://dev59.com/03I-5IYBdhLWcg3wW3Cp - Zero
这与Pandas有什么关系? - tobias_k
6个回答

3

你可以使用它

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

1

只有当你能够处理 regex 时:

import re

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

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

1
>>> val
'[12 13 14 16 17 18]'
>>> val.strip("[]").split(" ")
['12', '13', '14', '16', '17', '18']

2
可以只用一次 strip('[]') - rafaelc

0
你可以使用这个:
val = '[12 13 14 16 17 18]'
val = val[1:-1].split()
print(val)

输出:

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

0
如果你真的需要括号。
val = '[12 13 14 16 17 18]'
val = val.replace('[','')
val = val.replace(']','')
val = val.split(' ')

0

在将空格替换为逗号后,您可以使用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'>

我认为他想要一个字符串列表。 - rafaelc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接