字典构建问题:如何单独访问SQL查询结果的各字段值
修改字典构建代码实现目标结构
需求说明
需要将SQL提取的数据构建为指定结构的字典:
- 键为
row[0](例如New York-Dallas) - 值包含
row[1]、row[2]、row[3]、row[4]以及row[5]的集合(示例结构:('NHL', 8.1, 9, '15:00', [0,1,1,5]))
现有代码(待修改)
x={} for row in next.fetchall(): x.setdefault((row[0],row[1],row[2], row[3], row[4]), []).append(row[5])
修改后的代码
x = {} for row in next.fetchall(): key = row[0] # 初始化键对应的结构:前四位是row[1]-row[4],最后一位是存储row[5]的列表 if key not in x: x[key] = (row[1], row[2], row[3], row[4], []) # 追加当前row[5]到列表中 x[key][4].append(row[5])
代码说明
- 直接将
row[0]作为字典的键,替代原有的多元组键 - 首次遇到新键时,初始化值的结构:用元组固定
row[1]-row[4],最后一位设为空列表用于收集row[5](保留原代码中批量追加row[5]的逻辑) - 重复键直接追加
row[5]到对应列表,无需重新创建结构
示例输出
{ 'New York-Dallas': ('NHL', 8.1, 9, '15:00', [0, 1, 1, 5]), 'Vegas-Chicago': ('NHL', 8.1, 9, '18:00', [1, 2, 3, 4]) }
内容的提问来源于stack exchange,提问作者user20812299
相关产品推荐
相关产品推荐

