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
相关产品推荐
相关产品推荐

