3 回答

TA贡献1869条经验 获得超4个赞
您可以ast.literal_eval用来将键转换为整数列表:
import ast
fixed_values = {'[1,2,3]':1, '[4,5,6]':2}
result = {}
for k, v in fixed_values.items():
key_ints = ast.literal_eval(k)
for i in key_ints:
result[i] = v

TA贡献1802条经验 获得超5个赞
使用ast模块来解析列表。
import ast
initial_dict = {'value1':'[1,2,3]',
'value2':'[4,5,6]'}
expanded_vals = {k: ast.literal_eval(v) for k, v in initial_dict.items()}
result = {}
for k, v in expanded_vals.items():
for e in v:
result[e] = k
print(result)

TA贡献1806条经验 获得超5个赞
如果您想要一个可怕的单线,可以使用
initial_dict = {'value1':'[1,2,3]', 'value2':'[4,5,6]'}
new_values = {"value1": 1, "value2": 2}
new_dict = {z: y for x, y in ((v, new_values[k]) for k, v in initial_dict.items()) for z in eval(x)}
# new_dict = {1: 1, 2: 1, 3: 1, 4: 2, 5: 2, 6: 2}
添加回答
举报