问题描述
我试图理解为什么有时会为我的列表创建函数生成双引号而不是单引号。我有一个用于多个文本文件的函数,通常输出是带单引号的列表,但现在生成双引号(当我需要单引号时)。
有人能帮助我理解为什么这里可能会生成双引号和/或强制使用单引号的方法吗?
for below structure is :
string_text is str
text_list is list
list_text is list
def view(string_text):
text_list = []
for t in list_text:
text_list.append(string_text + """ more text """ + t +
""" more text """)
return text_list
text_list = view(string_text)
附加特定于我的用例,但您明白了。为 text_list 生成双引号。
list_text sample = ['a','b','c']
解决方法
这不是对发生这种情况的原因的解释,但可能是一个解决方案:如果您将另一个 str()
包裹在您的字符串周围(双引号或单引号),则结果应始终为单引号,至少在我尝试时
所以让我们把你的代码变成可以直接粘贴到 python 控制台窗口的东西:
def view(string_text):
text_list = []
for t in list_text:
text_list.append(string_text + """ more text """ + t +
""" more text """)
return text_list
list_text = ['a','b','c']
text_list = view('123')
text_list
节目
['123 more text a more text ','123 more text b more text ','123 more text c more text ']
为什么?因为字符串的字符串表示使用 '
,直到字符串中包含 '
。然后它使用 "
来分隔字符串。
更简单的例子是
>>> "'"
"'"
>>> '"'
'"'
>>> "'\""
'\'"'
但这应该没什么区别。如前所述,这只是程序中存在的字符串的字符串表示。这些分隔符实际上并不在字符串本身中。分别查看 str()
和 repr()
的不同之处。