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

如何将字典中相同值映射到另一字符串列表并实现字符串转数字

复用已构建的字典实现单词到数字的一致映射

嘿,这事儿其实很简单——核心就是保留并复用你已经创建好的字典d,它已经帮你把所有单词和对应的数字绑定好了,直接用它来处理列表B就行!

具体实现步骤

  1. 首先确保你保留了之前从字符串A生成的字典d,它是我们的“映射对照表”。
  2. 遍历列表B中的每个子字符串,对每个字符串做和A相同的预处理:转小写、分割成单个单词。
  3. 用字典d去查找每个单词对应的数值,把结果整理成嵌套列表就是你要的res_B。

完整代码示例

# 你的原始代码:从字符串A构建映射字典d
A = 'hello world how are you doing'
d = {}
res_A = [d.setdefault(word, len(d)+1) for word in A.lower().split()]

# 处理列表B的代码
B = ['hello world how', 'hello are' ,'hello', 'hello are you doing']
# 用列表推导式一步到位生成res_B
res_B = [[d[word] for word in s.lower().split()] for s in B]

print(res_B)
# 输出结果:[[1, 2, 3], [1, 4], [1], [1, 4, 5, 6]]

代码解释

  • s.lower().split():和处理A时保持一致,确保大小写不影响匹配(比如如果B里有"Hello"也能正确映射到1)。
  • d[word]:直接通过字典获取单词对应的数值,因为你的B里所有单词都来自A,所以不用担心KeyError。如果后续B可能出现新单词,可以改用d.get(word, 0)(0作为新单词的默认值,你也可以换成其他数字)。

这种方法既保证了映射的一致性,又简洁高效,完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:37:46