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

如何在Python中实现类Excel VLOOKUP/XLOOKUP的汇率查询函数

首先你当前的FX_list = ("12/31/2022", 1.0666)是单个日期-汇率的元组,实际处理多组数据时,得把多个这类元组放到一个大列表里,比如:

FX_data = [
    ("12/31/2022", 1.0666),
    ("01/01/2023", 1.0702),
    ("01/02/2023", 1.0689)
]

下面给你两种实现类似VLOOKUP功能的方法,适配不同场景:

方法1:用字典(推荐,查找效率高)

字典的键值对天生适配“找键返回值”的需求,先把列表转换成字典:

# 转换列表为字典,日期做键,汇率做值
fx_dict = {date: rate for date, rate in FX_data}

# 查找逻辑直接用字典的get方法,简单高效
def get_exchange_rate(target_date):
    # 第二个参数是未找到时的返回内容,可自定义
    return fx_dict.get(target_date, "未找到对应日期的汇率")

调用示例:

print(get_exchange_rate("12/31/2022"))  # 输出 1.0666
print(get_exchange_rate("01/03/2023"))  # 输出 未找到对应日期的汇率

方法2:遍历列表(适合新手理解基础逻辑)

如果想手动实现查找过程,写个循环函数就行:

def lookup_exchange_rate(target_date, fx_list):
    for date, rate in fx_list:
        # 严格匹配日期字符串
        if date == target_date:
            return rate
    # 遍历完没找到就返回None或自定义提示
    return None

调用示例:

print(lookup_exchange_rate("01/01/2023", FX_data))  # 输出 1.0702
print(lookup_exchange_rate("01/03/2023", FX_data))  # 输出 None

注意事项

  • 日期字符串必须完全匹配,比如列表里是"12/31/2022",输入"2022-12-31"就找不到。如果有格式不统一的情况,可以用datetime模块统一转换:
from datetime import datetime

def standardize_date(date_str):
    # 把输入的日期字符串转换成统一格式,比如"%Y-%m-%d"
    return datetime.strptime(date_str, "%m/%d/%Y").strftime("%Y-%m-%d")

# 转换所有日期格式后再构建字典
fx_dict_standard = {standardize_date(date): rate for date, rate in FX_data}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:10:02