使用双引号而不是单引号返回Python列表中的变量

umb*_*987 15 python string list python-2.7

我试图从双引号而不是单引号的字符串列表中返回一个变量.

例如,如果我的列表是

List = ["A", "B"]
Run Code Online (Sandbox Code Playgroud)

如果我键入List[0]输出是'A'.相反,我想要"A".有没有办法做到这一点?我需要这个,因为在ArcGIS中运行的外部脚本只接受双引号内的变量.

fn.*_*fn. 36

你可以使用json.dumps()

>>> import json
>>> List = ["A", "B"]
>>> print json.dumps(List)
["A", "B"]
Run Code Online (Sandbox Code Playgroud)

  • 这会生成一个字符串,**不是**双引号字符串列表 (3认同)
  • 请注意,它还会转义某些可能不是您想要的字符。 (3认同)

Wil*_*den 5

如果您需要以特定方式格式化的输出,请使用以下内容str.format():

>>> print('"{0}"'.format(List[0]))
"A"
Run Code Online (Sandbox Code Playgroud)

一旦解析了行,Python就会忘记用于定义列表中字符串的引号.如果你想发出一个带引号的字符串,你必须自己做.

您所看到的是Python解释器,它显示表达式值的字符串表示形式.具体来说,如果在不解析为的解释器中键入表达式None,它将调用repr结果以生成可以显示的字符串表示形式.对于字符串,这包括单引号.

每次键入表达式时(例如,称为),交互式解释器基本上都是这样做的expr:

result = expr
if result is not None:
    print(repr(result))
Run Code Online (Sandbox Code Playgroud)

请注意,我的示例print返回None,因此解释器本身不会打印任何内容.同时,该print函数输出字符串本身,绕过上面的逻辑.

  • @ umbe1987两者没有区别.它显示了''A',因为这就是解释器的工作方式,但在引擎盖下它们是完全相同的字符串 (2认同)