我有四份清单:
list1 = ["in", "france", "germany"]
list2 = ["NAMASTE", "VANAKAM"]
list3 = ["fr1", "fr2", "fr3"]
list4 = ["gem1", "gem2", "gem3", "gem4"]
我希望输出为:
[{'in': ["NAMASTE", "VANAKAM"], 'france': ["fr1", "fr2", "fr3"], 'germany': ["gem1", "gem2", "gem3", "gem4"]}]
我想不出怎么做
我能做的就是:
Lang = {}
counter = 1
for i in list1:
counter += 1
Lang[i] = f'list{counter}'
a = []
a.append(Lang)
print(a)
但我得到了:
[{'in': 'list2', 'france': 'list3', 'germany': 'list4'}]
如何将具有相同变量名的字符串转换为该变量,以便获得该变量的值
或任何其他方式来实现所需的输出
尝试列表理解:
如果您确实想显式地“将具有相同变量名的字符串转换为该变量”,您可以编写
而不是
Lang[i] = f'list{counter}
然而,使用eval被认为是一种非常糟糕的做法。在其他答案中,已经发布了一些更干净的解决方案。考虑阅读这些材料:
Why is using 'eval' a bad practice?
https://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
做你想做的事情最干净的方法是:
使用代码的正确方法是(尽管我建议您使用上面的代码):
见:How to get the value of a variable given its name in a string?
相关问题 更多 >
编程相关推荐