Aşağıdaki sözlüğü varsa:Python: kodlamak dize dönüştürme
foo = {'bar': {'baz': {'qux': 'gap'} } }
Ben kullanıcı " 'bar', 'Baz', 'qux', 'dop'" [girişine mümkün istiyorum genişletme: " 'bar', 'baz', 'qux', 'dop'"] dönüştürmek için:
{'qux': 'gap'}
{'qux': 'dop'}
için bu yaklaşım umuyordum için kullanıcı girişi dönüştürerek sözlük-arama-stateme Aşağıdaki aracılığıyla nt (tam terimi emin):
objectPath = "foo"
objectPathList = commandList[:-1] # commandList is the user input converted to a list
for i in objectPathList:
objectPath += "[" + i + "]"
changeTo = commandList[-1]
yukarıda objectPath = "fon [ 'bar'] [ 'baz'] [ 'qux']" ve changeTo = 'dop'
yaparHarika! Ancak, şimdi bu ifadeyi kod haline getirerek sorunlarım var.
eval(objectPath) = changeTo
nasıl sert yazılı kodunu değiştirmek için dize objectPath dönüştürebilirsiniz: Ben, ancak aşağıdaki çalışmamasına görünüyor hile yapacağını eval() düşünce?
'eval (objectPath + "= '" + changeTo "'") gibi bir şey yapardım' L3viathan @ – L3viathan
inanamıyorum Bunu kaçırdım! Teşekkürler! – Jack