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

如何在Python中让带重音的拉脱维亚字母与对应无重音字母等效

拉脱维亚语猜字游戏:带重音字母等效判定方案

你可以通过将字母转换为无重音基准形式后比较的方式实现需求,无需修改原字母。核心思路是:把带重音字母映射到对应的无重音字母,无重音字母保持原样,然后比较两者的基准形式是否一致。

实现代码

基于你已有的字典,添加一个辅助函数来获取字母的基准形式,再进行匹配判定:

minejums = input("Ievadi minējamo burtu: ")
latviesuburti = {"ā": "a", "č": "c", "ē": "e", "ģ": "g", "ī": "i", "ķ": "k", "ļ": "l", "ņ": "n", "š": "s", "ū": "u", "ž": "z"}

# 辅助函数:返回字母的无重音基准形式(不修改原字母)
def get_base_char(char):
    char_lower = char.lower()
    # 若为带重音字母则返回对应无重音,否则返回原小写字母
    return latviesuburti.get(char_lower, char_lower)

# 示例:假设游戏中要猜的目标字母是ķ
target_char = "ķ"

# 等效判定
if get_base_char(minejums) == get_base_char(target_char):
    print("Pareizi!")
else:
    print("Nepareizi!")

扩展到单词匹配

如果需要猜整个单词,只需循环逐个字符比较基准形式即可:

target_word = "ķēniņš"
guess_word = input("Ievadi minējamo vārdu: ")

if len(guess_word) != len(target_word):
    print("Vārda garums nepareizs!")
else:
    is_correct = True
    for guess_char, target_char in zip(guess_word, target_word):
        if get_base_char(guess_char) != get_base_char(target_char):
            is_correct = False
            break
    print("Pareizi!" if is_correct else "Nepareizi!")

说明

  • 这个方法不会修改用户输入或目标字母的原始内容,只是通过基准形式做等效判断。
  • 辅助函数里统一转小写是为了兼容大小写不敏感的猜字规则,如果你需要区分大小写,可以去掉char.lower()的转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:50:25