gpt4 book ai didi

Python 字符串到其他类

转载 作者:行者123 更新时间:2023-11-28 16:38:35 24 4
gpt4 key购买 nike

我有一个第 3 方 python 方法 (ANSA),它根据用户 gui 输入返回字符串,并以默认值开头。

默认值可能如下所示并存储在字典中:

Label         Value
Userdata1 123
Userdata2 'abc'
Userdata3 123.456
... ...

现在,这些都由第 3 方“back_box”函数作为带有字符串值的字典返回。

是否可以根据默认值的类将新的字符串类更改回默认类?下面是一些可能会使它更清楚的东西:

data = {'Userdata1':123, 
'Userdata2':'abc',
'Userdata3':123.456}

new_data = black_box(data) # Outputs dictionary with the values as strings

for i, var_name in enumerate(data):
original_class = type(data[var_name])
new_data[var_name] = new_data[var_name].StrToClass(original_class)

所以我正在寻找的是上面示例中称为 strToClass 的方法/函数/魔术。

我知道这可能是一种冒险的方法,但是关于 pythonic 方法有什么想法吗?

(python3 顺便说一句)

最佳答案

只需将字典原始值的类型保存在一个单独的新字典中,然后使用该字典将它们转换回来 --

>>> my_dict = {'Userdata1':123, 
'Userdata2':'abc',
'Userdata3':123.456}
>>> type_dict = {k:type(v) for k,v in my_dict.iteritems()}
>>> type_dict
{'Userdata2': <type 'str'>, 'Userdata3': <type 'float'>, 'Userdata1': <type 'int'>}
>>> str_dict = {k:str(v) for k,v in my_dict.iteritems()}
>>> str_dict
{'Userdata2': 'abc', 'Userdata3': '123.456', 'Userdata1': '123'}
>>> new_dict = {k:type_dict[k](v) for k,v in str_dict.iteritems()}
>>> new_dict
{'Userdata2': 'abc', 'Userdata3': 123.456, 'Userdata1': 123}

或者,使用你的伪代码

for i, var_name in enumerate(data):
original_class = type(data[var_name])
new_data[var_name] = original_class(new_data[var_name])

关于Python 字符串到其他类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22697897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com