提问人:forestbat 提问时间:8/4/2022 更新时间:8/4/2022 访问量:46
如何在python中将字符串拆分为我最喜欢的形式? [复制]
How to split string to my favorite form in python? [duplicate]
问:
我有一个字符串,它是从这样的列表转换而来的:
"['station38', 'station28', 'station27', 'station1', 'station0']"
我想用逗号拆分它,变成这样:
list_str=['station38', 'station28', 'station27', 'station1', 'station0']
但是,我只能得到这个:
>>> line_stations = upstream_str.replace('[', '').replace(']', '').split(',')
["'station38'", "'station28'", "'station27'", "'station1'", "'station0'"]
我用过,但是它失败了。strip('"')
那么如何获得我最喜欢的表格呢?感谢您的回复。
答:
1赞
fsimonjetz
8/4/2022
#1
在这种情况下,您最好使用现成的解决方案。ast.literal_eval
>>> from ast import literal_eval
>>> literal_eval("['station38', 'station28', 'station27', 'station1', 'station0']")
['station38', 'station28', 'station27', 'station1', 'station0']
这是因为可能存在临时解决方案可能未涵盖的各种情况,例如,类似 ."station42'"
1赞
stelioslogothetis
8/4/2022
#2
你快到了!您要删除的引号不是 ,而是 。您可以像以前一样使用:"
'
replace
upstream_str.replace('[', '').replace(']', '').replace("'", "").split(',')
strip()
删除位于字符串两端的匹配字符。在你的情况下,这是行不通的,因为在执行字符串之前是:split(",")
"'station38', 'station28', 'station27', 'station1', 'station0'"
请注意,在将字符串拆分为列表之前,它们都在字符串的中间。 但是,对于删除 :'
strip
[]
upstream_str.strip('[]').replace("'", "").split(',')
您还可以查看直接计算字符串以在一次操作中恢复原始列表。我建议查看 literal_eval
上的 StackOverflow 线程。
评论
1赞
isaactfa
8/4/2022
您可以将 替换为 。.replace('[', '').replace(']', '')
.strip('[]')
1赞
stelioslogothetis
8/4/2022
@isaactfa 谢谢!没有意识到
评论
eval()