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

将嵌套循环实现的摩尔斯码转换程序改写为列表推导式

单词转摩尔斯码并统计唯一结果:列表推导式改写版本

原代码通过嵌套循环实现单词到摩尔斯码的转换,再统计唯一结果数量,以下是用列表推导式改写的两种实现方式:

方式1:直接用生成器表达式(更高效,无中间列表)

c = [".-","-...","-.-.","-.",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-.--","--.."]
# 注:修正了原数组中对应字母l(索引11)的错误值,原代码为重复的".-",正确应为".-.."

return len(set(''.join(c[ord(char) - 97] for char in word) for word in words))

方式2:保留中间列表的列表推导式

c = [".-","-...","-.-.","-.",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-.--","--.."]

transformations = [''.join(c[ord(char) - 97] for char in word) for word in words]
return len(set(transformations))

改写说明

  • 内层用生成器表达式遍历单词的每个字符,转换为对应摩尔斯码片段
  • 用''.join()拼接单个单词的所有摩尔斯码片段,得到完整转换结果
  • 外层通过列表推导式(或生成器表达式)批量处理所有单词,最后转集合去重后取长度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:47:20