Python 在str和列表名称之间更改类型

Python 在str和列表名称之间更改类型,python,Python,有没有办法将c的类型从字符串改为列表 我认为您在变量c中存储了一个字符串答案,并且希望访问一个包含相应名称的列表。有了这个目标,您可以使用python函数eval() 从python文档()中,您可以看到: eval(表达式[,全局[,局部]]) expression参数作为Python表达式进行分析和计算 (从技术上讲,条件列表)使用全局和局部 字典作为全局和局部命名空间 这意味着在您的情况下,如果python名称空间中有使用此名称的变量,eval将得到字符串检查。结果如下: L1 = [1,

有没有办法将c的类型从字符串改为列表

我认为您在变量
c
中存储了一个字符串答案,并且希望访问一个包含相应名称的列表。有了这个目标,您可以使用python函数
eval()

从python文档()中,您可以看到:

eval(表达式[,全局[,局部]])

expression参数作为Python表达式进行分析和计算 (从技术上讲,条件列表)使用全局和局部 字典作为全局和局部命名空间

这意味着在您的情况下,如果python名称空间中有使用此名称的变量,eval将得到字符串检查。结果如下:

L1 = [1,2,3,4]
L2 = [5,6,7,8]
M1 = [9,10,11,12]        

a = input() #user would input '1' or '2'
b = input() #user would input 'M' or 'L'

c = b + a #the outcome would be either 'L1', 'L2' or 'M1'
上面的代码会让你到达你想要的地方。尽管我从未在任何实际用例中使用过,但我必须使用它


Obs:感谢您重新编写问题!:)

我认为您要做的是添加
'li'+'st'
以获得
列表
,您认为它将调用您的
列表
变量

所以你想要的是

c = 'L1'

print (eval(c)) # it will print the list L1 = [1,2,3,4]
是的,当您执行
'li'+'st'
时,您会得到
'list'
,但是您会得到一个字符串,而不是以前存储的变量

如果你想做
String=List
你只需键入
String=List
没什么,就是这么简单

另外,您应该选择更好的变量名,list在python中是可调用的,而调用字符串通常是不好的做法。例如,尝试使用lst和stg

list = [1,2,3,4]
String = 'li'+'st' # then here you expect String = List
字符串=列表
然后字符串[0]=1

不确定这里询问的是什么,字符串是不可变的-但不确定这是否是您的问题您能更好地解释这个问题吗?您可以使用
eval
,但请不要使用。这听起来像个愚蠢的想法。我很确定这是一个老问题。@mkrieger1为什么不
String=list
?我投了反对票,因为我不认为回答一个你必须疯狂猜测问题到底是什么的问题不是一个好主意。我还认为你在这里没有教OP任何有价值的东西,因为你的解决方案不应该用在“真实”代码中。谢谢你fernandosjp。我改变了我的问题,使它更容易理解。希望它能帮助像我这样的初学者:)欢迎@Lynsens!不过,我理解批评者的看法。StackOverflow是一个提问的地方,但我们需要确保它们清晰有序,否则它不会帮助其他人。我相信批评者会帮助你提出更好的问题,更快地学习。
list = [1,2,3,4]