【问题标题】:How to concatenate str and convert to a dict如何连接str并转换为dict
【发布时间】:2020-10-17 03:24:29
【问题描述】:
import numpy as np

a_var = np.array([1,2,3,5,67,9])
b_var = np.array([1,3,3,7,67,9])
b_var = np.array([1,5,3,7,77,10])
mydict = []

for i in dir():
    if i.endswith(_var):
        mydict += i

我有这么多变量,我想要结果

mydict = {'a_var':a_var,'b_var':b_var,'b_var':b_var}. 

有什么方法可以实现吗?

非常感谢

【问题讨论】:

标签: python python-3.x numpy dictionary


【解决方案1】:

您可以使用python内置函数locals()获取当前上下文中定义的所有变量。这是一个字典。

https://docs.python.org/3/library/functions.html#locals

你可以从 locals() dict 中通过dict理解得到所有以'_var'结尾的变量:

{k:v for k,v in locals().items() if k.endswith('_var')}

【讨论】:

  • 虽然 michcio1234 对原始问题的评论提出了一个很好的观点。如果你想要你的变量的字典,这是一个危险信号。首先考虑重写代码以使用字典。
【解决方案2】:

你可以使用locals():

import numpy as np
a_var = np.array([1,2,3,5,67,9])
b_var = np.array([1,3,3,7,67,9])
b_var = np.array([1,5,3,7,77,10])

mydict = {}
for i in dir():
    if i.endswith('_var'):
        mydict.update({i:locals()[i]})
print(mydict)

或者,dict 理解:

mydict = {i:locals()[i] for i in dir() if i.endswith('_var')}


我确实推荐这个,它会给出相同的结果:

import numpy as np

mydict = {}

mydict['a_var'] = np.array([1,2,3,5,67,9])
mydict['b_var'] = np.array([1,3,3,7,67,9])
mydict['b_var'] = np.array([1,5,3,7,77,10])

print(mydict)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多