use*_*583 -1 python python-2.7
我的程序(未显示)因为插入到我的列表中的外部双引号而中断.如何才能使我的列表x中没有双引号?
s = "('x',),('y',)"
print s
('x',),('y',)
x = []
x.append(s)
print x
["('x',),('y',)"]
Run Code Online (Sandbox Code Playgroud)
当我打印x时,我希望输出看起来像这样(没有双引号)print x [('x',),('y',)]
使用ast.literal_eval将Python数据的字符串表示形式转换为实际的数据结构:
>>> from ast import literal_eval
>>> s = "('x',),('y',)"
>>> literal_eval(s)
(('x',), ('y',))
Run Code Online (Sandbox Code Playgroud)
literal_eval的工作方式类似,eval但只能从字符串生成文字Python数据:字符串,数字,元组,列表,dicts,布尔值和None.比eval单独更安全一点.
如果你真的想要一个列表与你的字符串中的元组:
>>> list(literal_eval(s))
[('x',), ('y',)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |