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

Posted

技术标签:

【中文标题】使用双引号而不是单引号返回 Python 列表中的变量【英文标题】:Return a variable in a Python list with double quotes instead of single 【发布时间】:2015-12-12 22:07:43 【问题描述】:

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

例如,如果我的列表是

List = ["A", "B"]

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

【问题讨论】:

我将它与 ArcGIS 脚本一起使用,该脚本不接受单引号作为输入,而只接受双引号。 为什么投反对票? OP 可能误解了 Python 的工作原理,但这仍然是一个公平的问题。 邮政编码显示您如何尝试从 ArcGIS 中使用它。 OP,考虑接受 50 票赞成的答案 【参考方案1】:

你可以使用json.dumps()

>>> import json
>>> List = ["A", "B"]
>>> print json.dumps(List)
["A", "B"]

【讨论】:

这会产生一个字符串,不是双引号的字符串列表【参考方案2】:

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

>>> print('"0"'.format(List[0]))
"A"

一经解析,Python 就会忘记您用来定义列表中字符串的引号。如果你想发出一个带引号的字符串,你必须自己做。

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

每次您输入一个表达式(例如,expr)时,交互式解释器基本上都会做类似的事情:

result = expr
if result is not None:
    print(repr(result))

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

【讨论】:

不确定这是一个解决方案,考虑到如果您删除打印调用,它会输出'"A"' 谢谢,无论如何,我需要避免使用打印功能。相反,我应该处理列表本身的格式(如果可能的话),让“List[0]”的输出正好是“A”而不是“A”。 @umbe1987 两者没有区别。它显示'A',因为这是解释器的工作方式,但在引擎盖下它们是完全相同的字符串 @TimCastelijns 是的;这是因为解释器在显示结果之前调用了repr。请参阅我的更新答案。 @umbe1987 列表没有“输出”。如果要输出带有双引号的变量,则必须自己将它们放在那里。如果您将它与需要在字符串周围反引号的不同类型的脚本一起使用怎么办? Python 不支持这种语法,所以你会被卡住。

以上是关于使用双引号而不是单引号返回 Python 列表中的变量的主要内容,如果未能解决你的问题,请参考以下文章

Python中的单引号与双引号[关闭]

何时使用三重单引号而不是三重双引号

C和C++中单引号和双引号的用法?

Python中的单引号双引号三引号

单引号而不是双引号?

了解双引号与单引号的字符串生成