循环创建字典并以循环变量命名键时遇语法错误,求修正
修正后的代码实现
你原代码的核心错误在于最后一行的赋值逻辑:错误使用了列表语法且重新覆盖了字典变量table,正确做法是给字典添加键值对。以下是修正后的完整代码:
import numpy as np table = {} elasticity = np.array([[1,2],[3,4]]) genders = ['female', 'male'] income = ['i0','i1'] for i in range(len(genders)): for j in range(len(income)): key = f"{genders[i]}_{income[j]}" # 用f-string更简洁地拼接键名 table[key] = elasticity[i, j] # 给字典添加键值对
关键修正点说明
- 用
table[key] = 值的标准语法给字典添加元素,而非错误的列表赋值写法。 - 替换字符串拼接方式为f-string,代码更简洁易读。
- 移除了无实际作用的
elasticity.shape语句,若需查看数组形状可保留但无需单独成行。
最终字典结构
运行代码后,table字典的结构如下:
{ 'female_i0': 1, 'female_i1': 2, 'male_i0': 3, 'male_i1': 4 }
完全匹配你预期的键值对应关系。
内容的提问来源于stack exchange,提问作者Stata_user
相关产品推荐
相关产品推荐

