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

Python highlight_text如何替换<>占位符为函数传入参数值

实现方法

直接在自定义函数内部动态生成符合highlight_text语法规则的带标记字符串即可,不需要额外做复杂的占位符解析。highlight_text默认会将字符串中被<>包裹的内容识别为高亮块,渲染时自动隐藏尖括号标记,仅对包裹的文本应用对应样式,只需要把传入的实际球员名包裹在<>中放到对应位置即可。


完整实现示例

import highlight_text

def multi_beeswarm(Jugador1, Jugador2, background):
    # 原有蜂群图绘制逻辑:背景设置、坐标轴配置、数据绘图等
    # ...

    # 动态构造带高亮标记的字符串,将传入的参数值包裹在<>高亮标记中
    s = f'<{Jugador1}> and <{Jugador2}>  Premier League Passing Stats'
    
    # 原有高亮文本渲染逻辑无需改动
    highlight_text.fig_text(
        s=s,
        x=.18, y=.90,
        fontsize=22,
        fontfamily = 'Andale Mono',
        color = text_color,
        # highlight_textprops顺序需和字符串中<高亮块>的出现顺序一一对应
        highlight_textprops=[
            {"color": 'red', "fontweight": "bold"},
            {"color": 'blue', "fontweight": "bold"}
        ],
        va='center'
    )

# 函数调用
multi_beeswarm(Jugador1 = 'F. Zampedri', Jugador2 = 'L. Martínez Dupuy', background = '#313332')

补充说明

  • 上述代码运行后渲染出的文本就是目标结果F. Zampedri and L. Martínez Dupuy Premier League Passing Stats,两个球员名会分别应用红色加粗、蓝色加粗的高亮样式,不会出现字面量Jugador1/Jugador2,也不会显示尖括号标记。
  • 用f-string直接拼接是最简洁的实现方式,如果需要保留固定模板字符串不改动结构,也可以用替换方法生成目标字符串:
    s_template = '<Jugador1> and <Jugador2>  Premier League Passing Stats'
    s = s_template.replace('<Jugador1>', f'<{Jugador1}>').replace('<Jugador2>', f'<{Jugador2}>')
    
  • 如果后续需要增加更多高亮内容,只需要在字符串对应位置增加<{参数名}>格式的标记,同时按顺序在highlight_textprops列表中追加对应样式字典即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 02:30:15