如题, 我又一个字典 a 遍历之后获取到的键名称'test', 用这个 test 创建一个名为 test 的空列表
|
xiaochun41Jan 7, 2021
1
exec,eval 可以了解下。
|
|
todd7zhangJan 7, 2021
2
k = 'test'
globals()[k] = [] test.append(3) 不建议这么玩,哈哈 |
|
krixaarJan 7, 2021
3
接#2,直接玩 globals()还是有点危险,所以可以自己搞一个汇总字典,例如:
k = 'test' glöbals = {} glöbals[k] = [] glöbals['test'].append(3) print(glöbals['test']) 🤣 |
|
YvvonJan 7, 2021
4
a = {'test1': 1, 'test2': 2}
for k, v in a.items(): print(k) exec(f'{k} = []') print(test1) print(test2) |
|
jmc891205Jan 7, 2021
5
|
|
6
这个需求非常奇怪,一定是哪里有问题。
如果一定要用,就只能 locals().setdefault('test',list()) setdefault 避免覆盖现有变量,但是需要更多的工作判断是否创建成功,进一步来说,你编码时不知道变量名,想使用这个变量又只能使用 locals()或者 globals(),无法通过字面调用。那创建这个变量的意义又在哪呢 |
|
HelloViperJan 8, 2021
7
这种需求一般是要批量创建对象
你直接用字典管理,访问对象用 key 来索引: {"test1":obj(*params1),"test2":obj(*params2)....} |
|
9
已解决, 多谢各位~
|
|
canwushuangJan 12, 2021
10
程序中名字不重要,一切都是指针。典型的 xy 问题
|