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

如何统计字符串的单个字符出现频率及相邻字符转移频率

相邻字符转移频率统计实现方案

实现思路

  • 遍历字符串时仅遍历到倒数第二个字符,避免索引越界
  • 每次取当前字符与下一位字符组成前字符>后字符格式的转移键
  • 对每个转移键的出现次数做累加统计

基础版实现(无需导入额外库,适配你现有代码风格)

abc = 'peter piper picked a peck of pickled peppers'
# 你原有单字符频率统计代码
freq = {}
for i in abc:
    freq[i] = abc.count(i)
# 新增转移频率统计代码
trans_freq = {}
for i in range(len(abc) - 1):
    trans_key = f"{abc[i]}>{abc[i+1]}"
    if trans_key in trans_freq:
        trans_freq[trans_key] += 1
    else:
        trans_freq[trans_key] = 1
# 输出结果
print(trans_freq)

简洁版实现(基于Python标准库简化代码)

from collections import Counter
abc = 'peter piper picked a peck of pickled peppers'
# 单字符频率统计
freq = Counter(abc)
# 相邻转移频率统计
trans_freq = Counter(f"{abc[i]}>{abc[i+1]}" for i in range(len(abc)-1))
# 转普通字典可使用 dict(trans_freq)

补充说明

运行代码后可直接匹配你提到的示例统计结果:

  • p>e: 5
  • e>t: 1
  • t>e: 1
  • e>r: 3
    如果需要计算转移概率,可基于已有统计结果直接计算:
trans_prob = {key: count / freq[key.split('>')[0]] for key, count in trans_freq.items()}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:48:04