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

LibreOffice Calc:基于外部对应表匹配列元素并生成新列

基于映射表转换文本序列为数值序列的实现方案

嘿,我来帮你搞定这个文本转换需求!这里提供一个用Python实现的方案,既能高效完成单词到数值的映射转换,又不用把冗长的映射表合并到最终结果文件里,完全匹配你要的输出格式。

前置准备

先确认你的两个文件结构:

  • 映射表文件(比如命名为mapping.txt):
Column A Column B
a 1
b 2
c 3
d 4
e 5
f 6
g 7
  • 待转换的序列文件(比如命名为input.txt):
a b c d e f g
g f e d c b a
...

代码实现

下面的代码会先加载映射表为字典(快速查询的关键),然后逐行处理输入序列,输出你要的双列格式:

# 第一步:加载映射表到字典,方便快速查找
word_to_num = {}
with open('mapping.txt', 'r') as map_file:
    next(map_file)  # 跳过表头行
    for line in map_file:
        word, num = line.strip().split()
        word_to_num[word] = num

# 第二步:处理输入序列并输出结果
print("Column A Column B")
with open('input.txt', 'r') as input_file:
    for line in input_file:
        cleaned_line = line.strip()
        # 处理省略号行
        if cleaned_line == "...":
            print("... ...")
            continue
        # 跳过空行(如果有的话)
        if not cleaned_line:
            continue
        # 拆分原序列元素,转换为对应数值
        original_words = cleaned_line.split()
        converted_nums = [word_to_num[word] for word in original_words]
        # 拼接成要求的格式输出
        print(f"{' '.join(original_words)} {' '.join(converted_nums)}")

代码说明

  1. 映射表加载:把映射表转换成字典word_to_num,这样每个单词对应的数值可以瞬间查到,处理大文件时效率很高。
  2. 输入处理:逐行读取输入文件,自动跳过空行,对省略号行直接输出... ...;正常行则拆分每个单词,用列表推导式快速转换成数值序列。
  3. 格式输出:严格按照你要的格式,第一行是表头,后续每行左边是原单词序列,右边是对应的数值序列。

运行效果

运行后你会得到这样的输出:

Column A Column B
a b c d e f g 1 2 3 4 5 6 7
g f e d c b a 7 6 5 4 3 2 1
... ...

内容的提问来源于stack exchange,提问作者Maltreão Jan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:08:37