首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将列表的字符串表示形式转换为Python中的列表

将列表的字符串表示形式转换为Python中的列表
EN

Stack Overflow用户
提问于 2018-08-02 16:41:03
回答 4查看 737关注 0票数 0

我有一个看起来与列表相同的字符串,比方说:

代码语言:javascript
运行
复制
'[万福广场西,凰花苑]'

我想把它转换成这样:

代码语言:javascript
运行
复制
['万福广场西','凰花苑']

我使用了eval()ast.literal_eval(),但得到的错误如下:

代码语言:javascript
运行
复制
y=eval('[万福广场西,凰花苑]')


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-117-0aadbead218c> in <module>()
----> 1 y=eval('[万福广场西,凰花苑]')

<string> in <module>()

NameError: name '万福广场西' is not defined

在使用ast.literal_eval()时,我得到了这个错误ValueError: malformed node or string: <_ast.Name object at 0x000002A67FFA5CC0>

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-02 16:57:41

eval()将把给定的字符串视为python代码并返回结果。因此,根据您的字符串,python代码将类似于下面的[万福广场西,凰花苑],这意味着两个变量万福广场西凰花苑在一个列表中。

如果希望将其作为字符串列表进行计算,则需要使用double quotes (")绑定这两个字符串,例如

'["万福广场西","凰花苑"]'

当您将此字符串应用于eval()时,输出将是,

代码语言:javascript
运行
复制
['万福广场西', '凰花苑']

如果您希望动态地执行此操作,则需要使用拆分和连接函数,例如,

代码语言:javascript
运行
复制
''.join(list('[万福广场西,凰花苑]')[1:-1]).split(',')

首先使给定的字符串列表

代码语言:javascript
运行
复制
list('[万福广场西,凰花苑]')[1:-1] # O/P ['万', '福', '广', '场', '西', ',', '凰', '花', '苑']

然后将所有字符串连接为

代码语言:javascript
运行
复制
''.join(['万', '福', '广', '场', '西', ',', '凰', '花', '苑']) # O/P 万福广场西,凰花苑

并按comma (,)拆分字符串以创建所需的输出。

代码语言:javascript
运行
复制
'万福广场西,凰花苑'.split(',') # O/P ['万福广场西', '凰花苑']

希望你已经找到了你想要的东西。如果有任何需要澄清的情况,请随时发表评论。

票数 1
EN

Stack Overflow用户

发布于 2018-08-02 16:44:31

试试像这样的东西

代码语言:javascript
运行
复制
my_list = '[万福广场西,凰花苑]'[1:-1].split(",")

它将返回一个列表-- ['万福广场西', '凰花苑']

您可以将其检查为-- type(my_list) #<class 'list'>

票数 2
EN

Stack Overflow用户

发布于 2018-08-02 16:47:47

使用stripsplit

代码语言:javascript
运行
复制
>>> '[万福广场西,凰花苑]'.strip('[]').split(",")
['万福广场西', '凰花苑']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51649221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档