如何阻止字符串附加到列表时出现的字符串周围的撇号-Python

如何阻止字符串附加到列表时出现的字符串周围的撇号-Python,python,string,python-3.x,multidimensional-array,Python,String,Python 3.x,Multidimensional Array,当我运行这段代码时: MasterPots = [] PotTitle = "Oranges" BeforePT = "[" AfterPT = ", 0]" TempString = BeforePT + PotTitle + AfterPT MasterPots.append(TempString) print (MasterPots) 我预计结果如下: [[Oranges, 0]] ['[Oranges, 0]'] 然而,我不断得到以下结果: [[Oranges, 0]] ['[O

当我运行这段代码时:

MasterPots = []
PotTitle = "Oranges"
BeforePT = "["
AfterPT = ", 0]"
TempString = BeforePT + PotTitle + AfterPT
MasterPots.append(TempString)
print (MasterPots)
我预计结果如下:

[[Oranges, 0]]
['[Oranges, 0]']
然而,我不断得到以下结果:

[[Oranges, 0]]
['[Oranges, 0]']
当字符串附加到数组中时,如何阻止Python 3将撇号放在字符串周围

供参考:

-PotTitle的值由函数设置,但出于示例目的,我将其设置为Oranges

-当我跑步时:

print(TempString)
我得到:

[Oranges, 0]

如果在添加之前必须将要添加到列表中的项保留为字符串表示形式,则必须解析该字符串

这会将列表的字符串表示形式转换为实际列表

您可以通过执行以下操作来完成此操作:

import ast
MasterPots.append(ast.literal_eval(TempString))
另一种解决方案是首先将其作为列表,然后将其附加到列表中:

MasterPots.append([PotTitle, 0])
请注意,您可能正在经历

输出

[['Oranges', 0]]
这是你更感兴趣的吗

Oranges = "Something not Oranges"
Num_Oranges = 0

MasterPots = []
TempString = [Oranges, Num_Oranges]
MasterPots.append(TempString)
print (MasterPots)
print(TempString)
输出:

[['Something not Oranges', 0]]
['Something not Oranges', 0]

您正在生成一个字符串[Oranges,0],然后将其追加到列表中。您无法获得[[Oranges,0]]的结果。是否要[['Oranges',0]]?是的,当您打印TempString时,它将给出[Oranges,0],因为它正在打印字符串。我收到以下代码的异常:ValueError:格式错误的节点或string@quamrana这是因为Orange不是列表中的字符串,所以您必须执行['Orange',1]我同意XY问题,但是你的代码都没有意义。你的最后一行应该是:MasterPots.append[pottile,0]?@StephenMoss不清楚你到底想实现什么。如果您只想更改添加的药剂的名称,则不带任何字符串的Pottille将完成您想要的。@quamrana是的,没错。我从错误的角度看它。呃,重点是在Oranges周围没有语音标记,这样Oranges可以更改PotTitle是一个循环中使用的变量,每次迭代都会更改。Oranges是一个字符串,它唯一可以更改的是一个变量。如果它是一个字符串,python会在它周围加上引号,表示它是一个字符串;如果它是一个变量,它会打印存储在变量中的值。@StephenMoss我仍然确信你不能得到你想要的结果。也许可以更深入地了解Oranges字符串或变量的位置?是从哪里来的?