You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对字典列表中指定元素的name值应用hash_in()函数?

处理字典列表的指定字段函数应用需求

场景说明

通过执行以下SQL语句获取字典列表tbl_headers:

tbl_headers = db_admin.execute("SELECT name, type FROM PRAGMA_TABLE_INFO(?);", table_name)

该列表结构示例:

[
    {'name': 'id', 'type': 'INTEGER'},
    {'name': 'abasdfasd', 'type': 'TEXT'},
    {'name': 'sx', 'type': 'TEXT'},
    {'name': 'password', 'type': 'NULL'},
    {'name': 'asdf', 'type': 'TEXT'}
]

需求:对每个字典的name值应用hash_in()函数(password字段除外),同时完整保留原字典的结构。

解决方案

方法一:列表推导式(简洁写法)

processed_headers = [
    {**item, 'name': hash_in(item['name']) if item['name'] != 'password' else item['name']}
    for item in tbl_headers
]
  • {**item} 展开原字典的所有键值对,确保type等其他字段被保留
  • 条件判断实现:仅当name不是password时,才对其应用hash_in(),否则保留原值

方法二:循环遍历(易读写法)

如果觉得列表推导式不够直观,也可以用基础循环实现:

processed_headers = []
for item in tbl_headers:
    # 复制原字典,避免修改原始数据
    new_item = item.copy()
    if new_item['name'] != 'password':
        new_item['name'] = hash_in(new_item['name'])
    processed_headers.append(new_item)

常见问题分析

  • 之前列表推导式仅返回name值列表:是因为推导式只提取了hash_in(item['name']),没有构建完整的字典结构
  • map方法报错:map默认处理单个元素,若直接传入字典,需要额外编写处理整个字典的函数,不如上述方式直接

内容的提问来源于stack exchange,提问作者parmer_110

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:40:36